Class SecWhile

All Implemented Interfaces:
Continuable, SelfReferencing, SyntaxElement

public class SecWhile extends CodeSection implements Continuable, SelfReferencing
This section will keep executing the statements inside until the given condition does not hold anymore.
Since:
ALPHA
  • Constructor Details

    • SecWhile

      public SecWhile()
  • Method Details

    • loadSection

      public boolean loadSection(FileSection section, ParserState parserState, SkriptLogger logger)
      Description copied from class: CodeSection
      This methods determines the logic of what is being done to the elements inside of this section. By default, this simply parses all items inside it, but this can be overridden. In case an extending class just needs to do some additional operations on top of what the default implementation already does, then call super.loadSection(section) before any such operations.
      Overrides:
      loadSection in class CodeSection
      Parameters:
      section - the FileSection representing this CodeSection
      logger - the logger
      Returns:
      true if the items inside of the section were loaded properly, false if there was a problem
    • 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).
      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:
    • 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
    • getContinued

      public Optional<? extends Statement> getContinued(TriggerContext ctx)
      Description copied from interface: Continuable
      This function is called on the section where the EffContinue effect will continue to, taking all Continuable sections into account. Most of the time, this will just return the section it is referring to, but in rare cases, one might want to change this behaviour, hence this method.
      Specified by:
      getContinued in interface Continuable
      Parameters:
      ctx - the context
      Returns:
      the next statement
      See Also:
    • getActualNext

      public Optional<Statement> getActualNext()
      Description copied from interface: SelfReferencing
      This statement returns itself as the next statement to run in getNext().
      This method will return the actual statement that follows this statement. This means, by convention, the next element that is not nested more than this statement.
      Specified by:
      getActualNext in interface SelfReferencing
      Returns:
      the element that is actually after this section
    • 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