Package ch.njol.skript.conditions.base
Class PropertyCondition<T>
java.lang.Object
ch.njol.skript.lang.TriggerItem
ch.njol.skript.lang.Statement
ch.njol.skript.lang.Condition
ch.njol.skript.conditions.base.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
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
Debuggable.toString(Event, boolean)
method is already implemented, and it works well with the plural and negated forms - You can use the
register(Class, PropertyType, String, String)
method for an easy registration
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.-
Nested Class Summary
-
Field Summary
Fields inherited from class ch.njol.skript.lang.TriggerItem
parent
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
check(org.bukkit.event.Event e)
Checks whether this condition is satisfied with the given event.abstract boolean
protected abstract String
protected PropertyCondition.PropertyType
boolean
init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult)
Called just after the constructor.static void
register(Class<? extends Condition> c, PropertyCondition.PropertyType propertyType, String property, String type)
static void
protected void
setExpr(Expression<? extends T> expr)
Sets the expression this condition checks a property of.toString(@Nullable org.bukkit.event.Event e, boolean debug)
static String
toString(Condition condition, PropertyCondition.PropertyType propertyType, @Nullable org.bukkit.event.Event e, boolean debug, Expression<?> expr, String property)
Methods inherited from class ch.njol.skript.lang.Condition
isNegated, parse, run, setNegated
Methods inherited from class ch.njol.skript.lang.TriggerItem
debug, getIndentation, getNext, getParent, getTrigger, setNext, setParent, toString, walk, walk
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.njol.skript.lang.SyntaxElement
getParser
-
Constructor Details
-
PropertyCondition
public PropertyCondition()
-
-
Method Details
-
register
- Parameters:
c
- the class to registerproperty
- the property name, for example fly in players can flytype
- 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 registerpropertyType
- the property type, seePropertyCondition.PropertyType
property
- the property name, for example fly in players can flytype
- 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 interfaceSyntaxElement
- 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 matchedisDelayed
- 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 useSimpleExpression.check(Event, Checker)
-
check
-
getPropertyName
-
getPropertyType
-
setExpr
Sets the expression this condition checks a property of. No reference to the expression should be kept.- Parameters:
expr
-
-
toString
- Specified by:
toString
in interfaceDebuggable
- 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)
-