Class PropertyBaseCondition<Handler extends PropertyHandler.ConditionPropertyHandler<?>>

java.lang.Object
ch.njol.skript.lang.TriggerItem
ch.njol.skript.lang.Statement
ch.njol.skript.lang.Condition
org.skriptlang.skript.lang.properties.PropertyBaseCondition<Handler>
Type Parameters:
Handler - The handler type expected for this property.
All Implemented Interfaces:
Debuggable, Simplifiable<Condition>, SyntaxElement, Conditional<org.bukkit.event.Event>, PropertyBaseSyntax<Handler>, RuntimeErrorProducer, SyntaxRuntimeErrorProducer
Direct Known Subclasses:
PropCondIsEmpty

@Experimental public abstract class PropertyBaseCondition<Handler extends PropertyHandler.ConditionPropertyHandler<?>> extends Condition implements PropertyBaseSyntax<Handler>
A helper class for implementing property-driven conditions. Only PropertyBaseSyntax.getProperty() needs to be implemented.
See Also:
  • Field Details

    • propertyHolder

      protected Expression<?> propertyHolder
  • Constructor Details

    • PropertyBaseCondition

      public PropertyBaseCondition()
  • Method Details

    • register

      public static void register(Class<? extends Condition> condition, String property, String type)
      Registers a new property condition. The property type is set to PropertyCondition.PropertyType.BE.
      Parameters:
      condition - 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> condition, ch.njol.skript.conditions.base.PropertyCondition.PropertyType propertyType, String property, String type)
      Registers a new property condition.
      Parameters:
      condition - 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<?>[] expressions, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult)
      Description copied from interface: SyntaxElement
      Called just after the constructor and SyntaxElement.preInit().
      Specified by:
      init in interface SyntaxElement
      Parameters:
      expressions - 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:
    • check

      public boolean check(org.bukkit.event.Event event)
      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, Predicate)
      Specified by:
      check in class Condition
      Parameters:
      event - the event to check
      Returns:
      true if the condition is satisfied, false otherwise or if the condition doesn't apply to this event.
    • getPropertyType

      protected ch.njol.skript.conditions.base.PropertyCondition.PropertyType getPropertyType()
      The type of propertycondition this should be. Defaults to PropertyCondition.PropertyType.BE.
      Returns:
      The PropertyType. Used in toString and pattern generation.
    • toString

      public String toString(@Nullable @Nullable org.bukkit.event.Event event, boolean debug)
      Specified by:
      toString in interface Debuggable
      Parameters:
      event - The event to get information from. 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