菜单打开入口
通过命令、物品交互、聊天内容或按键打开菜单。
bindings 写在菜单顶层,别名为 binding、activator、activators。
入口字段
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
command(commands、cmd、cmds) | 文字、命令对象或列表 | 否 | 不注册绑定命令 | 命令名简写或完整命令定义 |
item(items) | 文字或文字列表 | 否 | 不启用物品入口 | 物品匹配表达式;列表中任意一个匹配即可打开 |
chat(chats) | 文字或文字列表 | 否 | 不启用聊天入口 | 匹配玩家聊天内容,忽略大小写 |
shift_f | 整数 | 否 | 不启用按键入口 | 潜行切换后按换手键的时间窗口,单位毫秒;小于 50 时按 50 处理 |
entity | 文字或文字列表 | 否 | 不启用实体入口 | 右键指定实体类型时打开 |
adyeshach(ady) | 文字或文字列表 | 否 | 不启用 NPC 入口 | 交互的 Adyeshach NPC ID,需要 Adyeshach |
命令入口
# 菜单顶层
bindings:
command: hello-menu注册 /hello-menu,执行后打开当前菜单。绑定名称不含开头 /。
命令字段
命令对象写在 bindings.command 下;只有命令名时也可像上例直接写文字。
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
name | 文字 | 是 | — | 命令名称,不含开头 / |
aliases | 文字列表 | 否 | 无别名 | 同一命令的其他名称 |
description | 文字 | 否 | 使用命令名称 | 帮助中的命令说明 |
usage | 文字 | 否 | 根据命令名称与参数生成 | 用法提示;可选参数使用方括号,必填参数使用尖括号 |
permission | 文字 | 否 | 默认允许使用 | 使用权限,填写后向使用者授予相应权限 |
permissionMessage | 文字 | 否 | 使用默认权限提示 | 没有权限时显示的文字 |
arguments(argument、args) | 参数定义列表 | 否 | 无参数 | 每项定义一个命令参数 |
多个命令可以写成列表,各自使用自己的参数与权限:
bindings:
command:
- name: guide
aliases:
- menu-guide
- name: help-menu
description: '打开同一个帮助菜单'命令名称与别名忽略大小写;同一菜单中的命令定义也不能使用重复名称或别名。
命令参数
bindings:
command:
name: profile
aliases:
- my-profile
description: '打开资料菜单'
usage: '/profile [target]'
permission: 'invero.profile'
permissionMessage: '你没有权限打开资料菜单。'
arguments:
- id: target
type: ANY
optional: true
default: '自己'
suggest:
- 自己
- Steve/profile Steve 将 target 设置为 Steve;不输入参数时使用 default。菜单文本通过 {{&target}} 读取它。
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
id(key、name、label) | 文字 | 是 | — | 参数变量名;同一命令内保持唯一 |
type | 文字 | 否 | ANY | ANY、DECIMAL、INTEGER、BOOLEAN、PLAYER、WORLD |
optional | 布尔值 | 否 | true | 是否允许省略此参数 |
default | 文字、数字或布尔值 | 否 | 不提供默认值 | 参数省略时使用;读取到的参数内容为文字 |
suggest | 文字列表 | 否 | 无提示列表 | 输入时提供的候选内容 |
restrict | 布尔值 | 否 | false | 是否将 ANY 参数限制为提示列表中的值 |
需要在线玩家参数时使用 type: PLAYER,世界参数使用 WORLD。可选参数省略且没有 default 时,不提供对应变量;显示时应考虑这一情况。
参数中的 incorrectMessage 不生效,不能自定义参数错误提示;参数类型与取值不符时使用默认提示。命令的无权限提示使用 permissionMessage,不受此限制。
物品、聊天与按键
bindings:
item: 'minecraft:compass'
chat: '打开菜单'
shift_f: 800| 入口 | 示例的触发方式 |
|---|---|
item | 使用指南针交互 |
chat | 输入“打开菜单”,忽略大小写 |
shift_f | 切换潜行状态后 800 毫秒内按换手键 |
物品入口的值为物品匹配表达式,例如 minecraft:compass。item 的别名为 items,chat 的别名为 chats;两者也可以填写列表,以匹配多个物品表达式或聊天内容。
命令名与别名应与其他插件的命令区分;冲突信息会显示在服务端日志中。
实体入口
右键以下类型的实体时打开当前菜单:
bindings:
entity:
- VILLAGER
- WANDERING_TRADER填写实体类型名称,而不是实体显示名称。只匹配一种类型时也可写为 entity: VILLAGER。
| 打开后可读取的变量 | 内容 |
|---|---|
activator_entity_name | 实体显示名称 |
activator_entity_type | 实体类型 |
activator_entity_uuid | 实体 UUID |
activator_entity_location_x、activator_entity_location_y、activator_entity_location_z | 实体位置 |
activator_entity_is_npc | 是否被识别为 NPC |
例如在图标名称中使用 {{&activator_entity_name}}。这些变量只由对应的实体入口提供。
Adyeshach NPC 入口
需要启用 Adyeshach。以下配置匹配该插件中 ID 为 menu_guide 或 help_guide 的 NPC:
bindings:
adyeshach:
- menu_guide
- help_guideadyeshach 的别名为 ady。填写 NPC ID,不填写 NPC 的显示名称;单个 ID 也可以直接写字符串。入口触发后,{{&activator_ady}} 可读取此次交互的 NPC ID。
入口变量
| 打开方式 | 变量 |
|---|---|
| 命令参数 | arguments 中定义的 id,例如 target |
| 聊天入口 | activator_message,玩家提交的匹配内容 |
| 物品入口 | activator_item,此次交互的物品 |
| 实体入口 | 上面的 activator_entity_* 变量 |
| Adyeshach 入口 | activator_ady,NPC ID |
其他打开方式不自动提供这些入口变量。通用玩家信息使用占位符。
最后更新于