java.lang.Object
net.storm.api.movement.pathfinder.model.requirement.Requirements

public class Requirements extends Object
Container for multiple requirement types that must all be fulfilled.

Requirements aggregates different requirement categories (quests, skills, items, vars, generic) and provides methods to check if all are satisfied. Requirements are combined with AND logic - all must be fulfilled.

Requirement Categories

  • itemRequirements - Item presence/count requirements
  • skillRequirements - Skill level requirements
  • varRequirements - Varbit/varp value requirements
  • questRequirements - Quest completion/progress requirements
  • genericRequirements - Custom lambda-based requirements

Builder Pattern


 Requirements reqs = Requirements.of(
     QuestRequirement.finished(Quest.PRIEST_IN_PERIL),
     new SkillRequirement(Skill.AGILITY, 70),
     new VarRequirement(Comparison.EQUAL, VarType.VARBIT, 1234, 1)
 );
 

Fluent API


 Requirements reqs = new Requirements()
     .addRequirement(QuestRequirement.finished(Quest.DRAGON_SLAYER_II))
     .addRequirement(new SkillRequirement(Skill.MINING, 60));
 

Usage Example


 Requirements reqs = getRequirements();

 if (reqs.fulfilled()) {
     // All requirements are met
 }

 if (reqs.isEmpty()) {
     // No requirements defined
 }
 
See Also:
  • Constructor Details

    • Requirements

      public Requirements()
  • Method Details

    • of

      public static Requirements of(Requirement... requirements)
      Creates a Requirements container from a varargs array of requirements.

      Each requirement is automatically categorized by type.

      Parameters:
      requirements - the requirements to add
      Returns:
      a new Requirements instance
    • fulfilled

      public boolean fulfilled()
      Checks if all requirements in all categories are fulfilled.
      Returns:
      true if every requirement is satisfied, false if any fails
    • addRequirement

      public Requirements addRequirement(Requirement requirement)
      Adds a requirement to the appropriate category list.

      The requirement type is detected and added to the correct list: ItemRequirement, SkillRequirement, VarRequirement, QuestRequirement, or genericRequirements for other types.

      Parameters:
      requirement - the requirement to add
      Returns:
      this Requirements instance for method chaining
    • isEmpty

      public boolean isEmpty()
      Checks if this container has no requirements defined.
      Returns:
      true if all requirement lists are empty