Interface CommandManager

  • All Known Subinterfaces:
    CommandManager.Mutable

    @DoNotStore
    public interface CommandManager
    Registers and dispatches commands.

    The command manager may be replaced at any point during the game lifecycle when the client chooses to reload registries.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  CommandManager.Mutable
      A mutable view of the command manager, allowing additional commands to be registered.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.Optional<CommandMapping> commandMapping​(java.lang.String alias)
      Gets the CommandMapping associated with the requested alias, if any.
      java.util.List<CommandCompletion> complete​(java.lang.String arguments)
      Provides possible completions based on the input argument string.
      java.util.List<CommandCompletion> complete​(Subject subject, Audience receiver, java.lang.String arguments)
      Provides possible completions based on the input argument string, with a provided a Subject for permission checks and a Audience to return command messages to.
      <T extends Subject & Audience>
      java.util.List<CommandCompletion>
      complete​(T subjectReceiver, java.lang.String arguments)
      Provides possible completions based on the input argument string, with a provided object that is both a Subject for permission checks and a Audience to return command messages to.
      java.util.Set<java.lang.String> knownAliases()
      Gets all the command aliases known to this command manager.
      java.util.Set<CommandMapping> knownMappings()
      Gets all the mappings known to this command manager.
      java.util.Collection<org.spongepowered.plugin.PluginContainer> plugins()
      Gets a Collection of PluginContainers with commands registered.
      CommandResult process​(java.lang.String arguments)
      Executes a command based on the provided arguments.
      CommandResult process​(Subject subject, Audience channel, java.lang.String arguments)
      Executes a command based on the provided arguments, with a provided Subject for permission checks and a provided Audience to return command messages to.
      <T extends Subject & Audience>
      CommandResult
      process​(T subjectReceiver, java.lang.String arguments)
      Executes a command based on the provided arguments, with a provided object that is both a Subject for permission checks and a Audience to return command messages to.
      <T> java.util.Optional<CommandRegistrar<T>> registrar​(io.leangen.geantyref.TypeToken<T> type)
      Get a registrar that will register commands of type to the active command manager.
      <T> java.util.Optional<CommandRegistrar<T>> registrar​(java.lang.Class<T> type)
      Get a registrar that will register commands of type to the active command manager.
      void updateCommandTreeForPlayer​(ServerPlayer player)
      Asks the server to send an updated client completion command tree to the specified ServerPlayer.
    • Method Detail

      • registrar

        <T> java.util.Optional<CommandRegistrar<T>> registrar​(java.lang.Class<T> type)
        Get a registrar that will register commands of type to the active command manager.

        This allows for out-of-band command registrations between calls to RegisterCommandEvent, though where possible that event should be preferred.

        When commands are registered outside of events, changes will not be automatically reflected in client command views. To update any applicable clients, see updateCommandTreeForPlayer(ServerPlayer).

        Type Parameters:
        T - registrar type
        Parameters:
        type - the registrar type
        Returns:
        a registrar, if any is known for type
      • registrar

        <T> java.util.Optional<CommandRegistrar<T>> registrar​(io.leangen.geantyref.TypeToken<T> type)
        Get a registrar that will register commands of type to the active command manager.

        This allows for out-of-band command registrations between calls to RegisterCommandEvent, though where possible that event should be preferred.

        When commands are registered outside of events, changes will not be automatically reflected in client command views. To update any applicable clients, see updateCommandTreeForPlayer(ServerPlayer).

        Type Parameters:
        T - registrar type
        Parameters:
        type - the registrar type
        Returns:
        a registrar, if any is known for type
      • process

        CommandResult process​(java.lang.String arguments)
                       throws CommandException
        Executes a command based on the provided arguments.
        Parameters:
        arguments - The arguments to parse and execute
        Returns:
        The CommandResult
        Throws:
        CommandException - if something goes wrong during parsing or execution
      • process

        <T extends Subject & AudienceCommandResult process​(T subjectReceiver,
                                                             java.lang.String arguments)
                                                      throws CommandException
        Executes a command based on the provided arguments, with a provided object that is both a Subject for permission checks and a Audience to return command messages to.
        Type Parameters:
        T - The type of receiver
        Parameters:
        subjectReceiver - The Subject & Audience
        arguments - The arguments to parse and execute
        Returns:
        The CommandResult
        Throws:
        CommandException - if something goes wrong during parsing or execution
      • process

        CommandResult process​(Subject subject,
                              Audience channel,
                              java.lang.String arguments)
                       throws CommandException
        Executes a command based on the provided arguments, with a provided Subject for permission checks and a provided Audience to return command messages to.
        Parameters:
        subject - The Subject for permission checks
        channel - The Audience to return messages to
        arguments - The arguments of the command
        Returns:
        The CommandResult
        Throws:
        CommandException - if something goes wrong during parsing or execution
      • complete

        java.util.List<CommandCompletion> complete​(java.lang.String arguments)
        Provides possible completions based on the input argument string.
        Parameters:
        arguments - The arguments
        Returns:
        The completions
      • complete

        <T extends Subject & Audience> java.util.List<CommandCompletion> complete​(T subjectReceiver,
                                                                                  java.lang.String arguments)
        Provides possible completions based on the input argument string, with a provided object that is both a Subject for permission checks and a Audience to return command messages to.
        Type Parameters:
        T - The type of receiver
        Parameters:
        subjectReceiver - The Subject & Audience
        arguments - The arguments
        Returns:
        The completions
      • complete

        java.util.List<CommandCompletion> complete​(Subject subject,
                                                   Audience receiver,
                                                   java.lang.String arguments)
        Provides possible completions based on the input argument string, with a provided a Subject for permission checks and a Audience to return command messages to.
        Parameters:
        subject - The Subject
        receiver - The Audience
        arguments - The arguments
        Returns:
        The completions
      • knownAliases

        java.util.Set<java.lang.String> knownAliases()
        Gets all the command aliases known to this command manager.
        Returns:
        The known aliases
      • knownMappings

        java.util.Set<CommandMapping> knownMappings()
        Gets all the mappings known to this command manager.
        Returns:
        The known mappings.
      • plugins

        java.util.Collection<org.spongepowered.plugin.PluginContainer> plugins()
        Gets a Collection of PluginContainers with commands registered.
        Returns:
        A Collection of PluginContainers.
      • commandMapping

        java.util.Optional<CommandMapping> commandMapping​(java.lang.String alias)
        Gets the CommandMapping associated with the requested alias, if any.
        Parameters:
        alias - The alias to get the mapping for
        Returns:
        The CommandMapping, if any
      • updateCommandTreeForPlayer

        void updateCommandTreeForPlayer​(ServerPlayer player)
        Asks the server to send an updated client completion command tree to the specified ServerPlayer.

        This should be used sparingly as repeated calls may cause performance issues. Implementations may choose to ignore this call if it deems it unnecessary to send an update.

        This method may return before the updates have been sent.

        Parameters:
        player - The ServerPlayer to send the command tree to.