参数类型
Monoceros 的参数节点使用 argument.type 指定类型。不同类型会决定输入怎么解析、怎么校验,以及能不能自动补全。
基本写法
- type: argument
name: target
argument:
type: PLAYER
required: true
suggest: online-player
当前支持的参数类型
| 类型 | 说明 |
|---|---|
STRING | 普通字符串 |
INT | 整数 |
DOUBLE | 小数 |
BOOLEAN | 布尔值 |
PLAYER | 在线玩家 |
OFFLINE_PLAYER | 离线玩家 |
WORLD | 世界名称 |
MATERIAL | Bukkit 材质名 |
SCRIPT_ID | 脚本定义 ID |
required
| 字段 | 默认值 | 说明 |
|---|---|---|
required | true | 是否必填 |
例如:
argument:
type: STRING
required: false
这样这个参数就可以省略。
常见组合
玩家 + 数值
- type: argument
name: player
argument:
type: PLAYER
required: true
suggest: online-player
- type: argument
name: amount
argument:
type: DOUBLE
required: true
材质参数
- type: argument
name: material
argument:
type: MATERIAL
required: true
suggest: material
脚本 ID 参数
- type: argument
name: scriptId
argument:
type: SCRIPT_ID
required: true
suggest: script-id
什么时候该把复杂逻辑放到脚本里
命令参数系统适合做:
- 基础类型解析
- 基础合法性判断
- 补全体验优化
如果你需要更复杂的业务判断,建议在命令层只做“收参数”,然后把具体逻辑交给脚本或工作流。
参数解析失败会怎么样
如果输入内容无法被解析成目标类型,例如把文本写进 INT 参数,命令在编译后的执行阶段就会失败,不会继续走后面的路由逻辑。
如果你需要更细的约束,可以继续阅读 ./restrictions.md。