指令
Chronos 插件的四条管理指令:设置、移除、试进状态、重载
这些指令是做什么的
Chronos 的指令非常简单,其核心是:管理玩家身上的「服务端控制器」。玩家有了控制器,才会拥有一整套连招、状态、窗口的动作逻辑;没有控制器,Chronos 对这名玩家就是完全静默的。
日常你只会用到四条命令:给玩家挂载控制器、把控制器摘掉、手动让玩家进入某个状态(做测试或给其它插件调用)、以及改完配置后热重载。
这四条指令都需要 OP 身份,权限节点为 chronos.admin。普通玩家无法使用。
前缀与别名
根指令是 /arcartx_chronos,同时注册了两个别名,随便用哪个都行:
/arcartx_chronos(完整)/ac(推荐,最短)/chronos
下文示例统一用 /ac。
指令一览
| 指令 | 作用 |
|---|---|
/ac set <控制器ID> <玩家> | 给玩家设置控制器 |
/ac remove <玩家> | 移除玩家的控制器 |
/ac tryState <状态ID> <玩家> [失败提示] | 尝试让玩家进入某个状态 |
/ac reload | 重载全部配置 |
set —— 设置控制器
给一名在线玩家挂上指定的控制器。
参数顺序是「控制器 ID 在前,玩家在后」,和很多插件相反。写反了会因为找不到控制器而失败。
| 参数 | 说明 |
|---|---|
控制器ID | controllers/ 文件夹里的 yml 文件名(不含 .yml)。文件名 sword.yml 的控制器 ID 就是 sword |
玩家 | 在线玩家的游戏名 |
示例:
若控制器 ID 不存在,会提示 控制器 xxx 不存在——先确认文件名,并执行过一次 /ac reload。
remove —— 移除控制器
把玩家身上的控制器移除。之后这名玩家不再受 Chronos 动作系统管理,直到重新 set 或触发自动切换。
示例:
如果 setting.yml 里配置了默认控制器或自动切换(见 基本设置),玩家重新登录或切换手持物品时可能又会被自动挂上控制器。remove 只影响当下这一次。
tryState —— 尝试让玩家进入状态
让玩家直接进入某个状态,而不是靠玩家自己按键触发。这条指令会走正常的进入校验(状态的 conditions 条件、冷却等),校验不过就不会进入。这里需要注意,这种方式设置的状态是不进链的,也就是就算设置了对应连招链,该状态下玩家就算进行任何输入,都不会进行连段。
| 参数 | 必填 | 说明 |
|---|---|---|
状态ID | 是 | 控制器里 state.<状态ID> 的键名 |
玩家 | 是 | 在线玩家的游戏名 |
失败提示 | 否 | 一段文本;仅当进入失败时发给该玩家,用于提示原因(如「冷却中」) |
典型用途:从命令方块、其它插件、脚本里让玩家播放一个指定动作(例如表情、舞蹈),并在条件不满足时给玩家一句提示。
示例:
进入成功与否取决于目标状态自身的 conditions 与冷却。想「无视条件强制进入」,需要用 Java API 的 forceEnterStateFromRootChain,且该状态必须在连招链根节点声明——见 API/EVENT。
reload —— 重载配置
改完 setting.yml、keybinding.yml 或 controllers/、client/ 里的任意 yml 后,用这个指令重载。
重载会依次完成:
- 重新读取
setting.yml/keybinding.yml/ 全部控制器 - 重新注册客户端按键
- 重新注册所有控制器 / 状态机
- 为当前在线玩家补建数据并重新下发控制器
重载后留意后台输出,可确认加载结果:
调试习惯:每次改完配置先 reload,扫一眼后台——按键数量对不对、控制器有没有全部注册、有没有 WARN(拼错的 controller / state_name / 连招引用会在这里告警但不阻断加载)。
典型工作流
编辑 controllers/ client/ 下的 yml 配置
/ac reload 重载,并查看后台确认无 WARN
/ac set <控制器ID> <玩家> 把控制器挂到自己身上
进游戏实测;需要调整就回到第一步
也可以用 API
除了指令,插件开发者可以用 Java API 完成同样的事:
完整方法与事件见 API/EVENT。
