Class SecConditional

All Implemented Interfaces:
SyntaxElement

public class SecConditional extends CodeSection
This is the general control flow section which evaluates conditions and executes code if they succeed. If the condition fails, the section will look for falling clauses to run, like other 'else if' and 'else' sections. If there is no such clause, it will execute the next statement instead.
Since:
ALPHA
  • Constructor Details

    • SecConditional

      public SecConditional()
  • Method Details

    • init

      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).
      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:
    • walk

      public Optional<? extends Statement> walk(TriggerContext ctx)
      Description copied from class: Statement
      By default, runs Statement.run(TriggerContext) ; returns Statement.getNext() if it returns true, or null otherwise. Note that if this method is overridden, then the implementation of Statement.run(TriggerContext) doesn't matter.
      Specified by:
      walk in class CodeSection
      Parameters:
      ctx - the event
      Returns:
      the next item to be ran, or null if this is the last item to be executed
    • setNext

      public Statement setNext(@Nullable @Nullable Statement next)
      Description copied from class: Statement
      Sets the Statement that is placed after this Statement in the file. You can assume that the Statement.next statement of the next parameter is known if it has such a statement.
      Overrides:
      setNext in class Statement
      Parameters:
      next - the Statement that is following this one
      Returns:
      this statement
    • toString

      public String toString(TriggerContext ctx, boolean debug)
      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
    • checkFinishing

      public boolean checkFinishing(Predicate<? super Statement> finishingTest, SkriptLogger logger, int currentSectionLine, boolean warnUnreachable)
      Overrides:
      checkFinishing in class CodeSection
    • setFallingClause

      public void setFallingClause(SecConditional conditional)
      Sets the Conditional object this Conditional falls back to when it's condition verifies to false. Setting this to an "if" Conditional may cause unexpected/confusing behaviour.
      Parameters:
      conditional - the conditional section
    • getMode

      Returns:
      the SecConditional.ConditionalMode describing this Conditional
      See Also: