Interface CommandContext

All Superinterfaces:
Contextual, Subject, SubjectProxy
All Known Subinterfaces:
CommandContext.Builder

public interface CommandContext extends SubjectProxy
The CommandContext contains the parsed arguments for a command, and any other information that might be important when executing a command.

For information about the cause of the command, the CommandCause is available (see cause(). Some popular tasks that operate on the CommandCause are also directly available on this context, namely permission checks (via SubjectProxy) and sending a message to the CommandCause's Audience (via sendMessage(net.kyori.adventure.text.Component)).

  • Method Details

    • executedCommand

      Optional<Command.Parameterized> executedCommand()
      Gets the Command.Parameterized that is being executed, if it exists.
      Returns:
      The Command.Parameterized.
    • cause

      CommandCause cause()
      Gets the CommandCause associated with this context.
      Returns:
      The CommandCause
    • hasFlag

      boolean hasFlag(String flagAlias)
      Gets if a flag with given alias was specified at least once.

      If the flag has multiple aliases, (for example, -f and --flag, passing f or flag to this method will return the same result, regardless of the alias specified by the user.

      Parameters:
      flagAlias - The flag's alias (without a prefixed dash)
      Returns:
      If the flag was specified
    • hasFlag

      boolean hasFlag(Flag flag)
      Gets if the given flag was specified once.
      Parameters:
      flag - The Flag
      Returns:
      If the flag was specified
    • flagInvocationCount

      int flagInvocationCount(String flagKey)
      Returns how many times a given flag was invoked for this command.

      If the flag has multiple aliases, (for example, -f and --flag, passing f or flag to this method will return the same result, regardless of the alias specified by the user.

      Parameters:
      flagKey - The flag's alias (without a prefixed dash)
      Returns:
      The number of times the flag was specified
    • flagInvocationCount

      int flagInvocationCount(Flag flag)
      Returns how many times a given Flag was invoked for this command.
      Parameters:
      flag - The Flag
      Returns:
      The number of times the flag was specified
    • hasAny

      boolean hasAny(Parameter.Value<?> parameter)
      Returns whether this context has any value for the given argument key.
      Parameters:
      parameter - the Parameter associated with the argument
      Returns:
      whether there are any values present
    • hasAny

      boolean hasAny(Parameter.Key<?> key)
      Returns whether this context has any value for the given argument key.
      Parameters:
      key - The key to look up
      Returns:
      whether there are any values present
    • one

      <T> Optional<T> one(Parameter.Value<T> parameter) throws IllegalArgumentException
      Gets the value for the given key if the key has only one value.
      Type Parameters:
      T - the expected type of the argument
      Parameters:
      parameter - the Parameter associated with the argument
      Returns:
      the argument
      Throws:
      IllegalArgumentException - if more than one value for the key was found
    • one

      <T> Optional<T> one(Parameter.Key<T> key) throws IllegalArgumentException
      Gets the value for the given key if the key has only one value.
      Type Parameters:
      T - the expected type of the argument
      Parameters:
      key - the key to get
      Returns:
      the argument
      Throws:
      IllegalArgumentException - if more than one value for the key was found
    • requireOne

      <T> T requireOne(Parameter.Value<T> parameter) throws NoSuchElementException, IllegalArgumentException
      Gets the value for the given key if the key has only one value, otherwise, throws a NoSuchElementException.
      Type Parameters:
      T - the expected type of the argument
      Parameters:
      parameter - the Parameter associated with the argument
      Returns:
      the argument
      Throws:
      NoSuchElementException - if no value for the key was found
      IllegalArgumentException - if more than one value for the key was found
    • requireOne

      Gets the value for the given key if the key has only one value, otherwise, throws a NoSuchElementException.
      Type Parameters:
      T - the expected type of the argument
      Parameters:
      key - the key to get
      Returns:
      the argument
      Throws:
      NoSuchElementException - if no value for the key was found
      IllegalArgumentException - if more than one value for the key was found
    • all

      <T> Collection<? extends T> all(Parameter.Value<T> parameter)
      Gets all values for the given argument. May return an empty list if no values are present.
      Type Parameters:
      T - the expected type of the argument
      Parameters:
      parameter - the Parameter associated with the argument
      Returns:
      the argument
    • all

      <T> Collection<? extends T> all(Parameter.Key<T> key)
      Gets all values for the given argument. May return an empty list if no values are present.
      Type Parameters:
      T - the type of value to get
      Parameters:
      key - The key to get values for
      Returns:
      the collection of all values
    • sendMessage

      void sendMessage(Component message)
      Sends a system message via CommandCause.audience()
      Parameters:
      message - The message to send
      See Also:
    • sendMessage

      void sendMessage(Identified source, Component message)
      Sends a message via CommandCause.audience()
      Parameters:
      source - The Identified that is the sender of the message
      message - The message to send
      See Also:
    • sendMessage

      void sendMessage(Identity source, Component message)
      Sends a message via CommandCause.audience()
      Parameters:
      source - The Identity of the sender of the message
      message - The message to send
      See Also: