Class ExprContextValue<T, C extends TriggerContext>

java.lang.Object
io.github.syst3ms.skriptparser.expressions.ExprContextValue<T,C>
All Implemented Interfaces:
Expression<T>, SyntaxElement

public class ExprContextValue<T, C extends TriggerContext> extends Object implements Expression<T>
  • Constructor Details

    • ExprContextValue

      public ExprContextValue()
  • Method Details

    • init

      @Contract("_, _, _ -> fail") public boolean init(Expression<?>[] expressions, int matchedPattern, ParseContext parseContext)
      Description copied from interface: SyntaxElement
      Initializes this SyntaxElement before being used. This method is always called before all the others in an extending class, the only exception being CodeSection.loadSection(FileSection, ParserState, SkriptLogger).
      Specified by:
      init in interface SyntaxElement
      Parameters:
      expressions - an array of expressions representing all the expressions that are being passed to this syntax element. As opposed to Skript, elements of this array can't be null.
      matchedPattern - the index of the pattern that was successfully matched. It corresponds to the order of the syntaxes in registration
      parseContext - an object containing additional information about the parsing of this syntax element, like regex matches and parse marks
      Returns:
      true if the syntax element was initialized successfully, false otherwise.
      See Also:
    • getValues

      public T[] getValues(TriggerContext ctx)
      Description copied from interface: Expression
      Retrieves all values of this Expression, accounting for possible modifiers. This means that if this is an or-list, it will choose a random value to return.
      Specified by:
      getValues in interface Expression<T>
      Parameters:
      ctx - the event
      Returns:
      an array of the values
      See Also:
    • acceptsChange

      public Optional<Class<?>[]> acceptsChange(ChangeMode mode)
      Description copied from interface: Expression
      Determines whether this expression can be changed according to a specific ChangeMode, and what type of values it can be changed with.
      Specified by:
      acceptsChange in interface Expression<T>
      Parameters:
      mode - the mode this Expression would be changed with
      Returns:
      an array of classes describing what types this Expression can be changed with, empty if it shouldn't be changed with the given change mode. If the change mode is ChangeMode.DELETE or ChangeMode.RESET, then an empty array should be returned.
    • change

      public void change(TriggerContext ctx, ChangeMode changeMode, Object[] changeWith)
      Description copied from interface: Expression
      Changes this expression with the given values according to the given mode
      Specified by:
      change in interface Expression<T>
      Parameters:
      ctx - the event
      changeMode - the mode of change
      changeWith - the values to change this Expression with
    • isSingle

      public boolean isSingle()
      Specified by:
      isSingle in interface Expression<T>
      Returns:
      whether this expression returns a single value. By default, this is defined on registration, but it can be overridden.
    • getReturnType

      public Class<? extends T> getReturnType()
      Specified by:
      getReturnType in interface Expression<T>
      Returns:
      the return type of this expression. By default, this is defined on registration, but, like Expression.isSingle(), can be overriden.
    • toString

      public String toString(TriggerContext ctx, boolean debug)
      Specified by:
      toString in interface SyntaxElement
      Parameters:
      ctx - the event
      debug - whether to show additional information or not
      Returns:
      a String that should aim to resemble what is written in the script as closely as possible