Class AbstractCommandTree<Impl extends AbstractCommandTree<Impl,Argument,CommandSender>,Argument extends AbstractArgument<?,?,Argument,CommandSender>,CommandSender>

java.lang.Object
dev.jorel.commandapi.AbstractCommandTree<Impl,Argument,CommandSender>
Type Parameters:
Impl - The class extending this class, used as the return type for chain calls
Argument - The implementation of AbstractArgument being used by this class
CommandSender - The CommandSender class used by the class extending this class
All Implemented Interfaces:
ChainableBuilder<Impl>

public abstract class AbstractCommandTree<Impl extends AbstractCommandTree<Impl,Argument,CommandSender>,Argument extends AbstractArgument<?,?,Argument,CommandSender>,CommandSender> extends Object
This is the root node for creating a command as a tree
  • Field Details

  • Constructor Details

    • AbstractCommandTree

      protected AbstractCommandTree(String commandName)
      Creates a main root node for a command tree with a given command name
      Parameters:
      commandName - The name of the command to create
  • Method Details

    • then

      Create a child branch on the tree
      Parameters:
      tree - the child node
      Returns:
      this root node
    • register

      public void register()
      Registers the command
    • 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 ExecutableCommand.withShortDescription(java.lang.String) and ExecutableCommand.withFullDescription(java.lang.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()
    • 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