Skip to content
iPlugin

命令与权限

完整列出管理入口、参数、权限、菜单变量传入和导出行为。

主命令是 /invero,别名 /i。<参数> 必填,[参数] 可省略;这些括号不需要输入。游戏内命令带 /,控制台输入时不带。

管理权限

除了主命令分支,还注册了以下独立入口。它们首次注册权限时都默认授予 OP;已有同名权限的授权规则不会被这些默认值覆盖。

命令入口别名实际检查的入口权限
/invero/iinvero.command.access
/menu无invero.command.menu
/itemSerializer无invero.command.item
/gnode/globalnode、/gninvero.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