Class PropertyCondition<T>

All Implemented Interfaces:
Debuggable, SyntaxElement, Checker<T>
Direct Known Subclasses:
CondAI, CondCanFly, CondEntityIsInLiquid, CondEntityIsWet, CondHasClientWeather, CondHasCustomModelData, CondHasResourcePack, CondIgnitionProcess, CondIsAlive, CondIsBanned, CondIsBlock, CondIsBlocking, CondIsBurning, CondIsCharged, CondIsEdible, CondIsEmpty, CondIsFlammable, CondIsFlying, CondIsFuel, CondIsInteractable, CondIsInvulnerable, CondIsOccluding, CondIsOnGround, CondIsOnline, CondIsPassable, CondIsPoisoned, CondIsRiptiding, CondIsSilent, CondIsSkriptCommand, CondIsSleeping, CondIsSlimeChunk, CondIsSneaking, CondIsSolid, CondIsSprinting, CondIsSwimming, CondIsTameable, CondIsTransparent, CondIsUnbreakable, CondIsVectorNormalized, CondLeashed, CondProjectileCanBounce

public abstract class PropertyCondition<T> extends Condition implements Checker<T>
This class can be used for an easier writing of conditions that contain only one type in the pattern, and are in one of the following forms:
  • something is something
  • something can something
  • something has something
The plural and negated forms are also supported. The gains of using this class: Note: if you choose to register this class in any other way than by calling register(Class, PropertyType, String, String) or register(Class, String, String), be aware that there can only be two patterns - the first one needs to be a non-negated one and a negated one.
  • Constructor Details

    • PropertyCondition

      public PropertyCondition()
  • Method Details

    • register

      public static void register(Class<? extends Condition> c, String property, String type)
      Parameters:
      c - the class to register
      property - the property name, for example fly in players can fly
      type - must be plural, for example players in players can fly
    • register

      public static void register(Class<? extends Condition> c, PropertyCondition.PropertyType propertyType, String property, String type)
      Parameters:
      c - the class to register
      propertyType - the property type, see PropertyCondition.PropertyType
      property - the property name, for example fly in players can fly
      type - must be plural, for example players in players can fly
    • init

      public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult)
      Description copied from interface: SyntaxElement
      Called just after the constructor.
      Specified by:
      init in interface SyntaxElement
      Parameters:
      exprs - all %expr%s included in the matching pattern in the order they appear in the pattern. If an optional value was left out it will still be included in this list holding the default value of the desired type which usually depends on the event.
      matchedPattern - The index of the pattern which matched
      isDelayed - Whether this expression is used after a delay or not (i.e. if the event has already passed when this expression will be called)
      parseResult - Additional information about the match.
      Returns:
      Whether this expression was initialised successfully. An error should be printed prior to returning false to specify the cause.
      See Also:
      ParserInstance.isCurrentEvent(Class...)
    • check

      public final boolean check(org.bukkit.event.Event e)
      Description copied from class: Condition
      Checks whether this condition is satisfied with the given event. This should not alter the event or the world in any way, as conditions are only checked until one returns false. All subsequent conditions of the same trigger will then be omitted.

      You might want to use SimpleExpression.check(Event, Checker)
      Specified by:
      check in class Condition
      Parameters:
      e - the event to check
      Returns:
      true if the condition is satisfied, false otherwise or if the condition doesn't apply to this event.
    • check

      public abstract boolean check(T t)
      Specified by:
      check in interface Checker<T>
    • getPropertyName

      protected abstract String getPropertyName()
    • getPropertyType

      protected PropertyCondition.PropertyType getPropertyType()
    • setExpr

      protected final void setExpr(Expression<? extends T> expr)
      Sets the expression this condition checks a property of. No reference to the expression should be kept.
      Parameters:
      expr -
    • toString

      public String toString(@Nullable org.bukkit.event.Event e, boolean debug)
      Specified by:
      toString in interface Debuggable
      Parameters:
      e - The event to get information to. This is always null if debug == false.
      debug - If true this should print more information, if false this should print what is shown to the end user
      Returns:
      String representation of this object
    • toString

      public static String toString(Condition condition, PropertyCondition.PropertyType propertyType, @Nullable org.bukkit.event.Event e, boolean debug, Expression<?> expr, String property)