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、javascript | JavaScript 求值;支持当前会话和脚本变量绑定 |
javascript_debug | 与 JavaScript 求值相同;不是独立调试器 |
javascript_now | 即时 JavaScript 求值;另输出调试日志 |
parse | 格式化文字;需要玩家上下文 |
minimessage、mmessage、mmsg | MiniMessage 消息;受自动占位符翻译开关控制 |
fluentmessage、fmessage、fmsg | TabooLib 复合文本消息;同上 |
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 nextat 后为必填整数索引,从 0 开始;可以重复,按“顶层面板 → 子面板”向内选择。最后用 select,别名 switch。上例选择顶层第一个面板中的第二个子面板,供同一段脚本的后续操作使用;它不负责把一个隐藏标签页切为可见页。
panel select 没有索引时清除本段脚本的面板选择;索引越界会失败。没有末尾 select / switch 的语句没有选择效果。没有 panel page、panel icon 这种嵌套命令;先选择面板,再写独立的 page / icon。
选择只作用于当前脚本上下文,不会跨动作列表的各文本项自动保留;节点也不保证继承调用者的面板选择。page、icon 等按各自查找规则使用所选上下文;icons 始终遍历整个菜单当前有效区域,regenerate / storage 还受同级第一个目标的限制,不把选择语句理解成所有操作统一、精确的作用域。
分页
所有页号从 0 开始。page 查找当前面板、父面板或窗口中可用的分页面板;没有找到时返回空文字,不会创建分页面板。
| 语句 | 操作别名、参数与结果 |
|---|---|
page get | current;返回当前页索引 |
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 0 | by 可写 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 1window 后先写一个操作名,再写必填整数。实际只设置铁砧窗口的经验等级消耗;目前操作名没有进一步分支校验,统一写 repairCost,不要据此虚构其他窗口功能。非铁砧窗口没有可见效果。
Last updated on