Class CyberSubCommand


public abstract class CyberSubCommand extends BaseCommand
Used to easily create a subcommand that can then be added to a CyberSuperCommand.
  • Constructor Details

    • CyberSubCommand

      public CyberSubCommand(String name, String permission, String permissionMsg, String usage)
      Creates a new CyberSubCommand with the provided arguments.
      Parameters:
      name - The name of the subcommand
      permission - The permission to use the subcommand (null for no permission)
      permissionMsg - The message to send to the player if they do not have the permission
      usage - The usage of the subcommand
    • CyberSubCommand

      public CyberSubCommand(String name, String permission, String usage)
      Creates a new CyberSubCommand with the provided arguments. The permission message is set to the default permission message provided by CyberCommandUtils.getDefaultPermissionMsg().
      Parameters:
      name - The name of the subcommand
      permission - The permission to use the subcommand (null for no permission)
      usage - The usage of the subcommand
    • CyberSubCommand

      public CyberSubCommand(String name, String usage)
      Creates a new CyberSubCommand with the provided arguments. The permission message is set to the default permission message provided by CyberCommandUtils.getDefaultPermissionMsg(). The permission is assumed to be null, meaning that no permission is needed to execute this command.
      Parameters:
      name - The name of the subcommand
      usage - The usage of the subcommand
  • Method Details

    • onTabComplete

      public final List<String> onTabComplete(SentCommand superCommand, String subcommandLabel, String[] subcommandArgs)
      This should be ignored by most developers
    • tabComplete

      public abstract List<String> tabComplete(SentCommand superCommand, SentSubCommand subCommand)
      The tabComplete method is called when the player presses tab while typing a subcommand.

      Returning an empty list will do the following:
       - If the argument the command sender is currently typing has been set (via BaseCommand.setArgType(int, ArgType)) to either ArgType.ONLINE_PLAYER or ArgType.OFFLINE_PLAYER), then a list of players will be sent to the command sender.
       - If the above yields no results, an empty list will be sent to the command sender.
      To override this behavior, return a list containing one string that is empty, and that will be returned instead.

      Parameters:
      superCommand - The SentCommand of the command that is being typed
      subCommand - The SentSubCommand of the subcommand that is being typed
      Returns:
      A list of strings to return to the command sender
    • onCommand

      public final boolean onCommand(SentCommand superCommand, String subcommandLabel, String[] subcommandArgs)
      This should be ignored by most developers
    • execute

      public abstract boolean execute(SentCommand superCommand, SentSubCommand subCommand)
      The execute method is called when the player executes a subcommand. All information about the supercommand, subcommand, who executed it, the arguments, etc. are provided in the SentCommand and SentSubCommand parameters

      The value returned by this method will be returned to the CommandExecutor.onCommand(CommandSender, Command, String, String[]) method.

      Parameters:
      superCommand - The SentCommand of the command that was executed
      subCommand - The SentSubCommand of the subcommand that was executed
      Returns:
      What to return to the CommandExecutor.onCommand(CommandSender, Command, String, String[]) method
      See Also:
      • CommandExecutor.onCommand(CommandSender, Command, String, String[])