Interface CommandManager


public interface CommandManager
Handles the registration and execution of commands.
  • Method Details

    • metaBuilder

      CommandMeta.Builder metaBuilder(String alias)
      Returns a builder to create a CommandMeta with the given alias.
      Parameters:
      alias - the first command alias
      Returns:
      a CommandMeta builder
    • metaBuilder

      CommandMeta.Builder metaBuilder(BrigadierCommand command)
      Returns a builder to create a CommandMeta for the given Brigadier command.
      Parameters:
      command - the command
      Returns:
      a CommandMeta builder
    • register

      @Deprecated default void register(String alias, Command command, String... otherAliases)
      Deprecated.
      use register(CommandMeta, Command) instead with a plugin specified
      Registers the specified command with the specified aliases.
      Parameters:
      alias - the first command alias
      command - the command to register
      otherAliases - additional aliases
      Throws:
      IllegalArgumentException - if one of the given aliases is already registered, or the given command does not implement a registrable Command subinterface
      See Also:
    • register

      @Deprecated void register(BrigadierCommand command)
      Deprecated.
      use register(CommandMeta, Command) instead with a plugin specified
      Registers the specified Brigadier command.
      Parameters:
      command - the command to register
      Throws:
      IllegalArgumentException - if the node alias is already registered
    • register

      void register(CommandMeta meta, Command command)
      Registers the specified command with the given metadata.
      Parameters:
      meta - the command metadata
      command - the command to register
      Throws:
      IllegalArgumentException - if one of the given aliases is already registered, or the given command does not implement a registrable Command subinterface
      See Also:
    • unregister

      void unregister(String alias)
      Unregisters the specified command alias from the manager, if registered.
      Parameters:
      alias - the command alias to unregister
    • unregister

      void unregister(CommandMeta meta)
      Unregisters the specified command from the manager, if registered.
      Parameters:
      meta - the command to unregister
    • getCommandMeta

      @Nullable CommandMeta getCommandMeta(String alias)
      Retrieves the CommandMeta from the specified command alias, if registered.
      Parameters:
      alias - the command alias to lookup
      Returns:
      an CommandMeta of the alias
    • executeAsync

      CompletableFuture<Boolean> executeAsync(CommandSource source, String cmdLine)
      Attempts to asynchronously execute a command from the given cmdLine.
      Parameters:
      source - the source to execute the command for
      cmdLine - the command to run
      Returns:
      a future that may be completed with the result of the command execution. Can be completed exceptionally if an exception is thrown during execution.
    • executeImmediatelyAsync

      CompletableFuture<Boolean> executeImmediatelyAsync(CommandSource source, String cmdLine)
      Attempts to asynchronously execute a command from the given cmdLine without firing a CommandExecuteEvent.
      Parameters:
      source - the source to execute the command for
      cmdLine - the command to run
      Returns:
      a future that may be completed with the result of the command execution. Can be completed exceptionally if an exception is thrown during execution.
    • getAliases

      Collection<String> getAliases()
      Returns an immutable collection of the case-insensitive aliases registered on this manager.
      Returns:
      the registered aliases
    • hasCommand

      boolean hasCommand(String alias)
      Returns whether the given alias is registered on this manager.
      Parameters:
      alias - the command alias to check
      Returns:
      true if the alias is registered; false otherwise
    • hasCommand

      boolean hasCommand(String alias, CommandSource source)
      Returns whether the given alias is registered on this manager and can be used by the given CommandSource. See ArgumentBuilder.requires(Predicate)
      Parameters:
      alias - the command alias to check
      source - the command source
      Returns:
      true if the alias is registered and usable; false otherwise