参数补全
Monoceros 内建了一组参数补全器。只要你在参数定义里声明 suggest,命令输入时就能自动联想。
基本写法
argument:
type: PLAYER
required: true
suggest: online-player
当前内建补全器
| 补全器 ID | 数据来源 |
|---|---|
online-player | 当前在线玩家 |
offline-player | 服务器已知离线玩家 |
world | 当前已加载世界 |
material | Bukkit 材质枚举 |
script-id | 已加载的脚本定义 ID |
dispatcher-id | 已注册的分发器 ID |
schedule-id | 已注册的调度 ID |
workflow-id | 已注册的动作工作流 ID |
常见搭配
玩家参数
argument:
type: PLAYER
suggest: online-player
材质参数
argument:
type: MATERIAL
suggest: material
脚本参数
argument:
type: SCRIPT_ID
suggest: script-id
补全器的实际价值
补全器最大的作用不是“看起来高级”,而是减少输错。
例如:
- 脚本 ID 写错一个点号,命令就会失败
- 调度 ID 写错一个字母,启动命令就会找不到目标
给这些参数挂上补全器,能明显降低维护成本。
什么时候不用补全
如果一个参数:
- 输入值很多而且变化特别快
- 本来就不适合穷举
- 更适合让脚本自己处理
那你也可以不配置 suggest。
和参数类型的关系
补全器不负责类型转换,只负责“输入时给你建议”。真正执行时,仍然要按 argument.type 去解析。
所以最稳妥的方式是:
- 先选对参数类型
- 再补上合适的补全器
- 最后按需要加限制器