Class SubCommand

java.lang.Object
com.github.theword.queqiao.tool.command.SubCommand
Direct Known Subclasses:
ClientCommand, HelpCommand, InfoCommand, ListCommand, ReconnectAllCommand, ReconnectCommand, ReloadCommand, RootCommand, ServerCommand

public abstract class SubCommand extends Object
子命令抽象类

采用树形结构管理命令层级关系

所有命令均需继承此类

Since:
0.5.0
  • Field Details

    • parent

      protected SubCommand parent
      父命令节点
    • children

      protected final List<SubCommand> children
      子命令列表
  • Constructor Details

    • SubCommand

      public SubCommand()
  • Method Details

    • addChild

      public void addChild(SubCommand child)
      添加子命令
      Parameters:
      child - 子命令
    • getChildren

      public List<SubCommand> getChildren()
      获取所有子命令
      Returns:
      子命令列表
    • getParent

      public SubCommand getParent()
      获取父命令
      Returns:
      父命令节点
    • isRoot

      public boolean isRoot()
      判断是否为根命令
      Returns:
      是否为根命令
    • getFullPath

      public String getFullPath()
      获取完整命令路径

      示例:/queqiao client list

      Returns:
      完整命令路径
    • getFullPermissionNode

      public String getFullPermissionNode()
      获取完整权限节点

      从根节点开始拼接,示例:queqiao.client.list

      Returns:
      完整权限节点
    • getName

      public abstract String getName()
      获取命令名称
      Returns:
      命令名称
    • getDescription

      public abstract String getDescription()
      获取命令描述
      Returns:
      命令描述
    • getUsage

      public String getUsage()
      获取命令用法

      默认返回完整路径,子类可以覆盖以添加参数说明

      Returns:
      命令用法
    • getPermissionNode

      public String getPermissionNode()
      获取命令权限节点

      默认返回完整权限节点,子类可以覆盖以自定义权限

      Returns:
      权限节点
    • execute

      public int execute(Object commandReturner, List<String> args)
      执行命令
      Parameters:
      commandReturner - 命令执行者
      args - 命令参数
      Since:
      0.5.0
    • onExecute

      protected abstract void onExecute(Object commandReturner, List<String> args)
      执行命令逻辑
      Parameters:
      commandReturner - 命令执行者
      args - 命令参数
    • sendCommandTree

      public void sendCommandTree(Object commandReturner, SubCommand command)
      递归发送指定命令以及所有子命令的树形结构
      Parameters:
      commandReturner - 命令执行者
      command - 当前命令节点