Class ExecutableCommand<Impl extends ExecutableCommand<Impl, CommandSender>, CommandSender>

java.lang.Object
dev.jorel.commandapi.ExecutableCommand<Impl, CommandSender>
Type Parameters:
Impl - The class extending this class, used as the return type for chain calls
CommandSender - The CommandSender class used by the class extending this class
All Implemented Interfaces:
ChainableBuilder<Impl>
Direct Known Subclasses:
AbstractCommandAPICommand, AbstractCommandTree

public abstract class ExecutableCommand<Impl extends ExecutableCommand<Impl, CommandSender>, CommandSender> extends Object
This is a base class for AbstractCommandAPICommand and AbstractCommandTree command definitions
  • Field Details

  • Constructor Details

    • ExecutableCommand

      protected ExecutableCommand(dev.jorel.commandapi.CommandMetaData<CommandSender> meta)
  • Method Details

    • getName

      public String getName()
      Returns the name of this command
      Returns:
      the name of this command
    • withPermission

      public Impl withPermission(CommandPermission permission)
      Applies a permission to the current command builder
      Parameters:
      permission - The permission node required to execute this command
      Returns:
      this command builder
    • withPermission

      public Impl withPermission(String permission)
      Applies a permission to the current command builder
      Parameters:
      permission - The permission node required to execute this command
      Returns:
      this command builder
    • withoutPermission

      public Impl withoutPermission(CommandPermission permission)
      Applies a permission to the current command builder
      Parameters:
      permission - The permission node required to execute this command
      Returns:
      this command builder
    • withoutPermission

      public Impl withoutPermission(String permission)
      Applies a permission to the current command builder
      Parameters:
      permission - The permission node required to execute this command
      Returns:
      this command builder
    • withRequirement

      public Impl withRequirement(Predicate<CommandSender> requirement)
      Adds a requirement that has to be satisfied to use this command. This method can be used multiple times and each use of this method will AND its requirement with the previously declared ones
      Parameters:
      requirement - the predicate that must be satisfied to use this command
      Returns:
      this command builder
    • withAliases

      public Impl withAliases(String... aliases)
      Adds an array of aliases to the current command builder
      Parameters:
      aliases - An array of aliases which can be used to execute this command
      Returns:
      this command builder
    • getPermission

      public CommandPermission getPermission()
      Returns the permission associated with this command
      Returns:
      the permission associated with this command
    • setPermission

      public void setPermission(CommandPermission permission)
      Sets the permission required to run this command
      Parameters:
      permission - the permission required to run this command
    • getAliases

      public String[] getAliases()
      Returns an array of aliases that can be used to run this command
      Returns:
      an array of aliases that can be used to run this command
    • setAliases

      public void setAliases(String[] aliases)
      Sets the aliases for this command
      Parameters:
      aliases - the aliases for this command
    • getRequirements

      public Predicate<CommandSender> getRequirements()
      Returns the requirements that must be satisfied to run this command
      Returns:
      the requirements that must be satisfied to run this command
    • setRequirements

      public void setRequirements(Predicate<CommandSender> requirements)
      Sets the requirements that must be satisfied to run this command
      Parameters:
      requirements - the requirements that must be satisfied to run this command
    • getShortDescription

      public String getShortDescription()
      Returns the short description for this command
      Returns:
      the short description for this command
    • withShortDescription

      public Impl withShortDescription(String description)
      Sets the short description for this command. This is the help which is shown in the main /help menu.
      Parameters:
      description - the short description for this command
      Returns:
      this command builder
    • getFullDescription

      public String getFullDescription()
      Returns the full description for this command
      Returns:
      the full description for this command
    • withFullDescription

      public Impl withFullDescription(String description)
      Sets the full description for this command. This is the help which is shown in the specific /help page for this command (e.g. /help mycommand).
      Parameters:
      description - the full description for this command
      Returns:
      this command builder
    • withUsage

      public Impl withUsage(String... usage)
      Sets the full usage for this command. This is the usage which is shown in the specific /help page for this command (e.g. /help mycommand).
      Parameters:
      usage - the full usage for this command
      Returns:
      this command builder
    • getUsage

      public String[] getUsage()
      Returns the usage for this command
      Returns:
      the usage for this command
    • withHelp

      public Impl withHelp(String shortDescription, String fullDescription)
      Sets the short and full description for this command. This is a short-hand for the withShortDescription(String) and withFullDescription(String) methods.
      Parameters:
      shortDescription - the short description for this command
      fullDescription - the full description for this command
      Returns:
      this command builder
    • override

      public void override()
      Overrides a command. Effectively the same as unregistering the command using CommandAPI.unregister() and then registering the command using .register()
    • register

      public void register()
      Registers this command with the default namespace
    • register

      public abstract void register(String namespace)
      Registers this command with a custom String namespace
    • getExecutor

      Returns the executors that this command has
      Returns:
      the executors that this command has
    • setExecutor

      public void setExecutor(CommandAPIExecutor<CommandSender, AbstractCommandSender<? extends CommandSender>> executor)
      Sets the executors for this command
      Parameters:
      executor - the executors for this command
    • clearExecutors

      public Impl clearExecutors()
      Clear all executors from the current command builder
      Returns:
      this command builder