玩家输入
接收聊天或告示牌内容,并保存到变量中。
catch 写在图标 action 中。开始输入时关闭菜单,输入内容保存在 catch 指定的变量中。
聊天输入
# 图标 action 字段
action:
catch: nickname
cancel:
- cancel
- exit
reopen: true
beforeInput: "mmsg '&e请在聊天栏输入内容,cancel 取消'"
afterInput: "mmsg '&a收到: {{&nickname}}'"
onCancel: "mmsg '&7已取消'"不填写 content 与 signLine 时使用聊天输入。输入保存为 nickname,afterInput 通过 {{&nickname}} 读取;成功后按 reopen 设置重新打开菜单,保留输入变量。
告示牌输入
action:
catch: keyword
content:
- '输入关键词:'
- ''
- '确认后返回菜单'
- ''
signLine: 1
cancel:
- cancel
afterInput: "mmsg '&a搜索词: {{&keyword}}'"填写 content 或 signLine 时使用告示牌。content 为四行初始文字;signLine: 1 读取第二行。省略 signLine 或填写负数时合并所有行。
字段与回调
单次输入时写在图标的 action 对象中。多步输入时,除 reopen 外的字段写在每个步骤中。
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
catch | 文字 | 是 | — | 保存输入内容的变量名 |
content | 文字列表 | 否 | 不提供初始文字 | 告示牌初始内容,按四行填写;设置后使用告示牌输入 |
signLine(signIndex、index、line) | 整数 | 否 | 告示牌输入时合并所有行 | 读取的行号 0~3;负数合并所有行,设置此字段即使用告示牌 |
cancel | 文字或文字列表 | 否 | 不设置取消关键词 | 匹配时取消输入,忽略大小写 |
reopen | 布尔值 | 否 | true | 输入成功后重开原菜单;多步输入时写在 catchers 同级 |
beforeInput | 动作或动作列表 | 否 | 不执行 | 第一次开始接收此项输入前执行,重试时不重复执行 |
afterInput | 动作或动作列表 | 否 | 接受输入 | 收到非取消内容后执行;返回 false 时重新输入 |
onRepeat | 动作或动作列表 | 否 | 不执行额外动作 | afterInput 返回 false 时执行,然后再次接收输入 |
onCancel | 动作或动作列表 | 否 | 不执行,也不自动重开 | 输入取消关键词时执行 |
多步输入
catchers 按顺序接收多项内容,全部完成后才按 reopen 设置返回菜单:
action:
reopen: true
catchers:
- catch: nickname
cancel:
- cancel
beforeInput: "mmsg '&e请输入昵称,输入 cancel 取消'"
onCancel: "mmsg '&7已取消输入'"
- catch: message
beforeInput: "mmsg '&e请输入留言,输入 cancel 取消'"
afterInput: "mmsg '&a{{&nickname}} 的留言:{{&message}}'"| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
catchers | 输入步骤对象列表 | 是 | — | 至少一个步骤;每项使用上表的输入字段 |
reopen | 布尔值 | 否 | true | 所有步骤成功后重开原菜单,不写入单个步骤 |
后续步骤未填写 cancel、beforeInput、onRepeat 或 onCancel 时,沿用第一步的对应设置。afterInput 按每步单独配置。任一步取消后停止后续步骤。
取消后返回菜单
取消输入只执行 onCancel,不会自动重开菜单。下面在取消时打开 ID 为 search 的菜单:
action:
catch: keyword
cancel:
- cancel
reopen: true
beforeInput: "mmsg '&e输入搜索词,或输入 cancel 返回'"
afterInput: "mmsg '&a搜索词:{{&keyword}}'"
onCancel: 'menu open search'输入内容用于命令参数时,应限定可接受的内容;控制台或 OP 命令不直接执行玩家提交的整段文本。
最后更新于