命令与权限
完整列出管理入口、参数、权限、菜单变量传入和导出行为。
主命令是 /invero,别名 /i。<参数> 必填,[参数] 可省略;这些括号不需要输入。游戏内命令带 /,控制台输入时不带。
管理权限
除了主命令分支,还注册了以下独立入口。它们首次注册权限时都默认授予 OP;已有同名权限的授权规则不会被这些默认值覆盖。
| 命令入口 | 别名 | 实际检查的入口权限 |
|---|---|---|
/invero | /i | invero.command.access |
/menu | 无 | invero.command.menu |
/itemSerializer | 无 | invero.command.item |
/gnode | /globalnode、/gn | invero.command.gnode |
/idev | 无 | invero.dev.access |
管理根入口也有插件前缀形式,例如 /invero:menu、/invero:gnode;仍使用该根入口的权限,不是新的授权方式。根命令名称会转为小写,表中的 /itemSerializer 也可写为 /itemserializer。
权限按入口区分,不是逐级叠加。 /invero menu、/invero item、/invero gnode、/invero dev 都只检查 invero.command.access,没有再检查各独立入口的权限。反过来,执行 /menu 不要求持有 invero.command.access。/globalnode、/gn 也不是 /invero gnode 分支的别名,不能写成 /invero gn。
/invero 显示命令树;独立的 /menu、/gnode、/idev 也有帮助。/itemSerializer 没有无参数帮助;/invero menu、/invero item、/invero gnode、/invero dev 这些分支也需要继续填写具体操作,不能套用独立入口的无参数帮助。面向玩家开放菜单时,使用菜单绑定命令或其他打开入口,不用开放上述管理入口。
菜单命令
下表的 /invero menu 都可以替换成 /menu,但适用的权限随入口改变。
| 命令 | 执行者与参数 | 功能 |
|---|---|---|
/invero menu reload | 玩家或控制台,无参数 | 重新扫描所有菜单工作空间,更新菜单与绑定命令;不重读主配置、不重载全局节点 |
/invero menu list [filter] | 玩家或控制台;省略 filter 列出全部 | 按 ID 包含的文字筛选,忽略大小写;候选分类来自至少出现两次的 ID 前缀,不限制手动输入其他筛选文字 |
/invero menu open <menu> [player] [arguments] | menu 必填;player 是在线玩家的准确名称 | 游戏内省略 player 时为自己打开;控制台必须指定玩家。填写变量时也必须先填写玩家 |
/invero menu dump <menu> | 玩家或控制台,ID 必填 | 将已加载菜单的序列化 JSON 上传到 Paste 服务,不是原 YAML 文件和注释的原样备份 |
菜单 ID 候选来自已加载菜单;打开与导出参数必须与候选完全一致,包括大小写。目标玩家不在线时不会替离线玩家保存一次“待打开”。
打开并传入变量
/invero menu open hello
/invero menu open hello Steve
/invero menu open hello Steve target=Alex;source=command第一条为自己打开;第二条为在线玩家 Steve 打开;第三条还传入两个文字变量,可用 {{&target}}、{{&source}} 读取。若想给自己传变量,也要明确填写自己的玩家名。
arguments 接收命令剩余内容,格式为 键=值;键=值。同名键以后写的值为准;空白键会忽略,不自动修剪键和值两端的空格。值中需要分号、等号或反斜线时用反斜线转义,例如 note=甲\;乙 表示值为 甲;乙。
JSON 对象形式当前不能按键值正确传入,使用上述分号格式。这组变量不会按照菜单绑定命令的 arguments 声明补默认值或做类型限制;两种入口独立。
全局节点与物品
全局节点
/invero gnode 可替换为 /gnode、/globalnode 或 /gn,独立入口使用 invero.command.gnode。
| 命令 | 参数与省略行为 | 功能 |
|---|---|---|
/invero gnode list | 无参数 | 列出已加载的全局节点名及类型 |
/invero gnode reload | 无参数 | 先清空再重新加载全局节点;失败节点不会保留旧定义,详细信息输出到后台 |
/invero gnode info | 无参数 | 显示启用状态、路径、查找优先级;启用时还显示数量 |
/invero gnode test <node> | 节点名必填,区分大小写 | 查找并显示节点的类型、配置内容和错误设置;不执行节点 |
/invero gnode dump <node> | 节点名必填,区分大小写 | 将该全局节点的 JSON 上传到 Paste 服务 |
test 的节点名必须明确输入;只输入 gnode test 实际会尝试查找字面名为 test 的节点,不会执行节点或自动显示正确用法。
关闭 GlobalNodes.enabled 后,info 仍可查看状态,其余全局节点操作会提示已禁用。目录、节点格式和重载差异见文件目录。节点执行应在菜单中使用 node,见节点。
物品导出
/invero item 可替换为 /itemSerializer,独立入口使用 invero.command.item。两种导出操作都只能由玩家执行。
| 命令 | 参数与省略行为 | 功能 |
|---|---|---|
/invero item encode [slot] | 省略 slot 读取主手 | 序列化指定装备位置的物品并上传 |
/invero item encodePrint [slot] | 同上 | 同样上传,并额外在后台打印完整 Base64 与单行 JSON;不是“只打印、不联网” |
slot 不是背包格号。实际可输入的候选如下,按小写填写:
| 位置 | 命令中使用的值 |
|---|---|
| 主手 | mainhand |
| 副手 | offhand |
| 头部 | head |
| 胸部 | chest |
| 腿部 | legs |
| 脚部 | feet |
这里的候选同时限制输入,不接受 hand、helmet、chestplate、leggings、boots,也不接受 0、1、2、3、4、5、-1 等换名或数字。读到空气时不上传。
导出服务的差别
菜单导出、全局节点导出和两种物品导出均读取主配置的 Paste。网络请求由服务端发出;选用与配置见内容导出服务。
| 服务 | 物品导出的实际内容 | 有效期行为 |
|---|---|---|
pastegg | 结构视图、Base64、单行 JSON 三份内容 | 请求 48 小时 |
lucko | 只上传第一份结构视图 | 不使用命令请求的有效期 |
pastebin | 只上传第一份结构视图 | 48 小时映射为服务支持的 1 周档位 |
需要复制完整物品 Base64 时,用 pastegg,或执行 encodePrint 后从后台取得。上传的菜单和节点中若写有密码或密钥,先去除这些内容。
诊断命令
下表既支持 /invero dev <操作>,也支持 /idev <操作>。前者使用主命令权限,后者使用 invero.dev.access。参数名拼写如下,其中 printSerailizedMenu 的拼写不可改成 printSerializedMenu。
| 操作 | 参数与执行者 | 可见效果及限制 |
|---|---|---|
runKether <脚本> | 玩家或控制台 | 执行剩余文字作为 Kether,结果发给执行者。玩家执行时使用自己;控制台随机使用一名在线玩家,没有在线玩家时不能运行;不会自动注入某个菜单的入口变量 |
testComponent <文本> | 玩家或控制台 | 解析组件文本并发给执行者,同时在后台打印转换后的文本 |
printSerailizedMenu <菜单ID> | 玩家或控制台;ID 区分大小写 | 把已加载菜单的 JSON 打印到后台,不上传 Paste;省略 ID 或找不到时无输出 |
printTasks | 玩家或控制台,无参数 | 在后台输出 Bukkit 调度器中属于本插件的活动和待执行任务数;不是 Folia 全部任务的汇总 |
printVariables | 玩家或控制台,无参数 | 在后台输出全局持久变量和所有在线玩家的持久变量,不是当前菜单临时变量清单 |
printSession | 玩家或控制台,无参数 | 检查在线列表第一名玩家的菜单会话;不一定是执行者,没有在线玩家时不能使用 |
printWindow | 玩家或控制台,无参数 | 同样检查在线列表第一名玩家,后台输出其窗口、面板和物品情况;该玩家须正在查看菜单 |
runKether 会真正执行脚本;gnode test 只展示配置。两者不能互相替代。
Last updated on