Class ReloadCommand<NCS>

java.lang.Object
io.github.theword.queqiao.core.command.CommandNode<NCS>
io.github.theword.queqiao.core.command.builtin.ReloadCommand<NCS>

public class ReloadCommand<NCS> extends CommandNode<NCS>
重载命令

本命令只依赖一个"重载动作"回调,而不直接持有 QueQiaoRuntime: 重载是 Runtime 的生命周期操作,回调由 Runtime 侧提供(如 runtime::reload), 命令层因此不必反向依赖 Runtime 类型,也不必通过 Runtime 的 getter 取用其它服务。

回执职责在本命令:Runtime 只返回 ReloadResult(不自己回执), 由本命令决定如何把进度消息展示给调用者。这样 Runtime 与 WebsocketManager 都不需要知道命令上下文的存在。

  • Constructor Details

    • ReloadCommand

      public ReloadCommand(org.slf4j.Logger logger, Supplier<ReloadResult> reloadAction)
  • Method Details

    • getName

      public String getName()
      获取命令名称
      Specified by:
      getName in class CommandNode<NCS>
      Returns:
      reload
    • getDescription

      public String getDescription()
      获取命令描述
      Specified by:
      getDescription in class CommandNode<NCS>
      Returns:
      重载配置文件并重新连接所有 Websocket Client
    • onExecute

      protected void onExecute(CommandExecutionContext<NCS> context, List<String> args)
      重载 WebSocket reload 命令调用

      先逐条回显 Runtime 返回的进度消息,再回显本命令自己的完成提示—— 与迁移前的消息顺序保持一致。

      Specified by:
      onExecute in class CommandNode<NCS>
      Parameters:
      context - 命令执行上下文
      args - 命令参数