Skip to content
iPlugin

Invero 语句参考

索引 Invero 注册的全部根语句与别名,并查询菜单、图标、分页和刷新操作。

本页查询 Invero 扩展语句的写法、别名与适用范围。通用的权限、条件、计算、变量和函数语法见 TabooLib Kether 列表。

示例语句放在图标 action、菜单 events 或明确标明 type: KETHER 的节点/任务中。返回值也可以用于 {{ ... }},但显示文字中的求值不应执行发物品、扣除、跳转等副作用。

全部根语句与别名

根语句与别名完整参数、效果与适用位置
menu打开、带参数跳转、关闭、标题;打开可从玩家动作调用,标题与关闭需要当前会话
panel选择面板;需要当前窗口
page分页;当前或附近的分页面板
icon单图标操作;当前图标,或当前/选定面板内的指定图标
icons批量图标操作;当前窗口的有效面板
regenerate重新应用筛选、排序;当前或同级的生成器面板
shift二维偏移;自由视口面板
scroll滚动;滚动面板
window铁砧经验消耗;铁砧窗口
context、ctx会话变量;当前活动会话
meta玩家临时元数据;需要玩家
persist持久数据;已配置数据存储
node节点调用与参数;当前菜单及启用的全局节点
task立即执行任务内容;当前菜单任务
item、itemstack取得物品;可选物品来源
inventory玩家背包、装备、检查和增减;需要玩家
storage、crafting物品交互槽位;物品交互面板
element生成器当前元素;生成器输出上下文
$、js、javascriptJavaScript 求值;支持当前会话和脚本变量绑定
javascript_debug与 JavaScript 求值相同;不是独立调试器
javascript_now即时 JavaScript 求值;另输出调试日志
parse格式化文字;需要玩家上下文
minimessage、mmessage、mmsgMiniMessage 消息;受自动占位符翻译开关控制
fluentmessage、fmessage、fmsgTabooLib 复合文本消息;同上
broadcast、bc广播文字;同上
command按身份执行命令;需要玩家
playerPerform玩家执行命令;需要玩家
console控制台执行命令;仍需调用玩家用于文字解析
connect、bungee跨服连接;代理端支持 BungeeCord 消息通道
wait、delay、sleep等待;挂起当前脚本后续操作
depend插件与 PAPI 扩展检查;PAPI 检查需要 PlaceholderAPI
eco、money、vault经济操作;Vault 和经济提供者
playerpoints、points、point点券操作;PlayerPoints
chance概率判断;无额外插件
max最大值与已知限制;无额外插件
min最小值与已知限制;无额外插件
typecheck类型判断;无额外插件

没有额外依赖的语句不需要为了使用它们另装扩展插件。以下各节查询窗口操作;数据、输入、节点、任务、物品和工具语句由上表链接到完整专题。

菜单

语句参数、返回或可见效果
menu open ID打开指定菜单,不携带原会话的普通变量;目标初始化事件仍执行
menu switch ID、menu open_ctx ID携带原会话变量打开目标菜单;不是保留同一个窗口实例
menu open ID for 'Steve'目标为指定在线玩家;未指定或未找到玩家时回退到执行者
menu open ID with 'category=help;from=hub'向新会话传入文字变量;可与 for 合用,两者顺序均可
menu close关闭当前菜单,触发关闭事件并取消原会话任务
menu title get返回当前窗口标题文字
menu title set '标题'、menu title to '标题'解析并替换当前标题;返回输入标题值,不自动暂停动态标题
menu title update用菜单配置中的默认标题重新求值并更新,不是切到下一动画帧
menu title pause暂停动态标题任务,不改变当前显示
menu title resume恢复动态标题任务

open / switch / open_ctx 的菜单 ID 必填且可以求值,默认区分大小写;找不到菜单会报错。for 后面填写可求值的在线玩家名,不是 UUID 或离线数据对象。省略 with 时没有额外变量;switch / open_ctx 先继承会话变量,再由 with 同名值覆盖,目标的持久数据载入和初始化仍可能覆盖它们。

with 的可靠写法是 键=值;键=值;要在键或值中保留分隔符,可用反斜线转义。JSON 对象文字目前不能正确转换为这组参数,不作为可用替代格式。传入的值都是文字,不是 YAML 对象。

标题、关闭语句需要活动会话。菜单刚打开的极短时间内,重复打开还可能被交互保护忽略;不要用同一次初始化事件连续打开多个窗口。完整导航见菜单跳转。

面板选择

panel at 0 at 1 select
page next

at 后为必填整数索引,从 0 开始;可以重复,按“顶层面板 → 子面板”向内选择。最后用 select,别名 switch。上例选择顶层第一个面板中的第二个子面板,供同一段脚本的后续操作使用;它不负责把一个隐藏标签页切为可见页。

panel select 没有索引时清除本段脚本的面板选择;索引越界会失败。没有末尾 select / switch 的语句没有选择效果。没有 panel page、panel icon 这种嵌套命令;先选择面板,再写独立的 page / icon。

选择只作用于当前脚本上下文,不会跨动作列表的各文本项自动保留;节点也不保证继承调用者的面板选择。page、icon 等按各自查找规则使用所选上下文;icons 始终遍历整个菜单当前有效区域,regenerate / storage 还受同级第一个目标的限制,不把选择语句理解成所有操作统一、精确的作用域。

分页

所有页号从 0 开始。page 查找当前面板、父面板或窗口中可用的分页面板;没有找到时返回空文字,不会创建分页面板。

语句操作别名、参数与结果
page getcurrent;返回当前页索引
page max返回最大页索引,不是页数
page isFirst返回当前页是否为 0
page isLast返回当前页是否等于最大页索引
page set to 0操作别名 to、switch;连接词可用 to / by,值为目标索引
page next by 1操作别名 add、increase、+;连接词可用 to / by,值为前进页数
page previous by 1操作别名 sub、decrease、-;连接词可用 to / by,值为后退页数

操作别名不区分大小写,无法识别的操作会回退为读取当前页。set / next / previous 的数值参数可以求值,省略时均为 1;因此 page set 不是回第一页。负参数限制为 0。

next / previous 不切到范围外;set 不应依赖越界保护,请传入 0 到 page max 之间的值。分页会更新对应面板的显示,不会自动重选固定导航按钮的子状态:

action: |-
  page next
  icon by '<' refresh
  icon by '>' refresh

图标

单图标语法:icon [by 图标ID] [at 局部槽位] 操作,选项按 by、at 的顺序写。

  • 不指定目标时使用当前点击图标;在菜单事件或节点中不一定存在当前图标。
  • by 按 ID 在当前/选定的图标面板中查找;同时有 by、at 时优先 ID。
  • at 是从 0 开始的面板局部槽位,不是整窗原始槽位。
  • 指定目标未找到时会回退当前图标;没有当前图标则失败,不应靠错误 ID 达成“忽略”。
语句返回或可见效果
icon update更新当前选定状态的物品、名称、Lore 等,不重新选择子状态
icon relocate重新选择子图标/帧状态,不保证立即重绘外观
icon refresh先重选状态,再更新外观
icon by 'A' refresh刷新指定 ID 图标
icon at 4 refresh刷新局部槽位 4 的图标
icon item返回当前图标的 ItemStack,可交给物品相关语句
icon index、icon sub_index已注册,但目前没有返回可用的子状态索引;不用于数字计算
icon pause_update、icon resume_update暂停/恢复图标的自动外观更新任务
icon pause_relocate、icon resume_relocate暂停/恢复自动子状态选择任务
icon pause_frames、icon resume_frames识别帧开关操作,但暂停后不能可靠续播,见下方限制
icons update遍历有效面板中的现有图标更新外观,保留生成器当前页
icons relocate批量重选现有图标状态,不重建生成器缓存
icons refresh普通图标重选并更新;生成器清除生成显示缓存、重新渲染并回第一页
icons pause_update、icons resume_update批量暂停/恢复外观更新
icons pause_relocate、icons resume_relocate批量暂停/恢复子状态选择
icons pause_frames、icons resume_frames批量切换帧开关,同样存在不能可靠续播的缺陷
icons index、icons sub_index识别此操作,但不返回各图标的数字索引

icons 不接受 by、at,没有 icons item。它会递归处理整个菜单当前有效区域,不受 panel select 缩小范围,也不保证更新所有隐藏页面。

pause_update / resume_update、pause_relocate / resume_relocate 只控制已有周期,不为未配置周期的图标新增任务,也不会禁用手动 icon update / icon refresh。

**帧开关有已知缺陷:**若暂停跨过下一次帧检查,动画会停止,resume_frames 只切回开关,不能可靠地重新启动播放;固定分页中的图标隐藏后也可能停止。不要把这两个分支当作可靠的暂停/续播能力。需要恢复确定的动画初始显示时,可重新打开菜单;详细边界见图标动画限制。

生成器的 icons refresh 分支只重建生成列表,并不对其固定图标逐个执行 refresh。筛选、翻页后要像上例单独刷新导航;固定搜索按钮也单独 icon by 'S' refresh。icons update / icons relocate 则会处理当前已有的固定图标和可见生成项。

生成器筛选与排序

语法:regenerate [filter '筛选脚本'] [sort '字段名'],先 filter,后 sort;均可省略。

语句返回或可见效果
regenerate用已记录的原始筛选表达式重新筛选,保留当前比较器,回到第一页并重建显示缓存
regenerate filter 'ctx without hidden'替换本次筛选表达式;每个对象求值,保留结果为真的对象
regenerate sort 'title'按对象字段转成的文字升序排序,不是数值排序或降序排序
regenerate filter 'true' sort 'title'明确清除筛选限制并按文字字段排序

查找当前面板所在同级组中的第一个生成器;没有当前面板上下文时,从窗口顶层找第一个。panel ... select 可以改变所在组,但不会保证直接命中所选的第二个生成器;同级放多个生成器时,不能据此承诺独立筛选。多个生成器还可能共享并覆盖原始筛选记录。没有对应面板或会话时返回 false,成功重建时返回 true。

每位玩家两次 regenerate 至少间隔 500 毫秒,过快调用返回 false。过滤表达式应即时返回,尚未完成的结果会按通过处理。筛选可见会话变量及每个对象的元素变量;sort 没有独立降序、数值模式参数。

这里重建的是已有数据源结果的显示缓存,不会重新执行生成器的数据获取流程;重新打开菜单才会重新走生成过程。临时 filter 也不会改写记录的原始筛选,下次省略 filter 时仍会用原始表达式。固定导航与搜索状态需要单独刷新,完整组合见搜索列表。

滚动与偏移

语句参数、别名与效果
shift by 1 0by 可写 with;必填一对整数,分别增加 X、Y 偏移;省略整组选项时为 0 0
scroll index、scroll get返回当前视口偏移:X 大于 0 时返回 X,否则返回 Y
scroll next、scroll right、scroll down同一个正向滚动操作,沿面板设置的方向前进 1
scroll previous、scroll left、scroll up同一个反向滚动操作,沿面板设置的方向后退 1
scroll reset重置视口到 0, 0

shift 需要自由视口面板,scroll 需要滚动面板;会查找当前、父级或窗口中的对应面板。没有面板时返回 <PANEL NOT FOUND>。scroll 操作名不区分大小写,未知操作返回错误文字;没有 scroll by N 参数。right / down 不是临时改变滚动方向,真正方向取决于面板的 scroll.direction。

铁砧窗口

window repairCost 1

window 后先写一个操作名,再写必填整数。实际只设置铁砧窗口的经验等级消耗;目前操作名没有进一步分支校验,统一写 repairCost,不要据此虚构其他窗口功能。非铁砧窗口没有可见效果。

Last updated on