消息、命令与工具语句
完整查询文本、命令、等待、跨服、依赖、经济、点券、概率与类型工具。
本页只说明 Invero 自己注册的语句。脚本中的通用条件、权限、计算和函数语法见 TabooLib Kether 列表。语句可放在点击动作、事件或 Kether 节点中;有副作用的语句不要放在名称、Lore 或筛选条件里。
文字与消息
| 语句 | 根语句别名 | 参数、返回或可见效果 |
|---|---|---|
parse '文本' | — | 必填一个可求值参数;格式化颜色、变量、内联脚本和可用占位符,返回文字,不发送 |
minimessage '<green>你好</green>' | mmessage、mmsg | 必填一段可求值文字,按 MiniMessage 向执行玩家发送 |
fluentmessage '[帮助](hover=提示)' | fmessage、fmsg | 必填一段可求值文字,按 TabooLib 复合文本向执行玩家发送 |
broadcast '&a公告' | bc | 必填一段可求值文字,以执行者上下文解析一次,再向在线玩家广播普通消息 |
这些语句需要玩家上下文,不要求有当前点击图标。parse 返回可继续使用的文字;消息发送语句主要提供可见效果,不把其结果当业务成功标志。
minimessage / fluentmessage / broadcast 及别名的 Invero 实现只在 Kether.auto-placeholder-translate: true 时注册。关闭该选项后,同名通用语句即便存在,也不代表仍有本页的自动解析行为。修改这个注册开关后应重启生效,不把普通菜单重载当作重新注册语句。
文字内容语法分别见 MiniMessage、TabooLib 复合文本和占位符。
命令
| 语句 | 参数与可见效果 |
|---|---|
command 'spawn' | 默认由执行玩家运行,命令文本必填且可以求值 |
command 'spawn' as player | 身份连接词可为 by、with、as;玩家身份为 player |
command 'spawn' as op | 身份别名 operator;执行期间临时使用 OP,结束后恢复原状态 |
command 'say @p' as console | 身份别名 server;由控制台执行 |
playerPerform 'spawn' | 与玩家身份的 command 使用同样的解析和执行方式,没有身份选项 |
console 'say {{player name}} 点击了菜单' | 可求值文字必填,解析后交给控制台;仍需要执行玩家用于求值 |
命令文字不带开头 /。command / playerPerform 会解析菜单文字与占位符,并替换 @sender:玩家/OP 模式替换为玩家名,控制台模式替换为 console;控制台模式还把 @p 替换为执行玩家名。
独立 console 只执行文字解析,不额外提供上面 command 的 @sender / @p 替换。需要这些替换时使用 command ... as console。这些命令语句没有可依赖的“命令业务成功”布尔结果;OP 和控制台命令的参数应来自你明确组织的内容,而不是原样执行整段玩家输入。
等待
action: |-
mmsg '&e两秒后关闭'
wait 2s
menu close根语句 wait,别名 delay、sleep。必填一个持续时间文字,使用 2s、0.5s、1m 或 ISO-8601 持续时间,不把裸数字当 tick。500ms 不支持,应写 0.5s。
持续时间换算成 tick,毫秒部分按 50 毫秒向下取整;延迟期间挂起当前脚本,不阻塞主线程。玩家离线时会终止该脚本。等待不自动取消已经启动的其他点击动作;节点取值也不会自动等它结束,见节点完成规则。
跨服连接
connect 服务器名 [for 在线玩家名],根别名 bungee。服务器名为必填可求值文字;未指定 for 时连接执行玩家,指定但找不到在线玩家时无连接效果。
connect lobby
connect survival for 'Steve'发送 BungeeCord Connect 通道消息,需要所在代理支持该消息通道并认识目标服务器名。此动作表示发起请求,不提供“玩家已经完成跨服”的确认结果;它不是 Bukkit 内的世界传送。
依赖检查
| 语句 | 参数与返回 |
|---|---|
depend plugin 'Vault' | 名称为必填原样文字;不区分大小写,按插件名称相等或包含匹配;返回是否在已加载插件列表中找到,不检查它是否启用 |
depend papi 'player' | 扩展标识符为必填原样文字;要求 PlaceholderAPI 已启用;通常按已注册标识符精确匹配,不区分大小写 |
papi 检查在无法读取注册标识符时,会退到试探占位符的方式;试探结果只能作为兼容性判断,不能证明某个具体占位符一定有值。未知依赖类型会报错。这两个参数不是自动求值的菜单变量表达式,传入你要检查的固定名称。
经济
根语句 eco,别名 money、vault。需要 Vault 和一个已接入的经济提供者,作用对象为执行玩家,不带其他玩家参数。
| 语句 | 参数与返回或效果 |
|---|---|
eco / eco get / eco balance | 返回余额;在连续脚本中建议明确写 get |
eco has 200 | 金额必填且可以求值,返回余额是否至少为该金额 |
eco take 200 | 扣除金额,返回经济接口响应对象,不是简单布尔值 |
eco give 200 | 增加金额,返回经济接口响应对象 |
eco set 200 | 根据当前余额补入或扣除差额,最后返回 true;该 true 不代表提供者一定接受了变更 |
操作名使用表中的小写名称,金额按小数转换。需要判断余额时用 has;不要把 take 的响应对象当作动作列表的自动失败判断。
点券
根语句 playerpoints,别名 points、point。需要 PlayerPoints,作用于执行玩家;金额转换为整数。
| 语句 | 参数与返回或效果 |
|---|---|
playerpoints / playerpoints get / playerpoints balance | 返回点券余额;不能取得余额时显式读取可能返回 -1 |
playerpoints has 10 | 数量必填且可以求值,返回余额是否足够 |
playerpoints take 10 | 调用扣除接口,不透传成功布尔值;负数扣除量会限制为 0 |
playerpoints give 10 | 调用增加接口,不透传成功布尔值 |
playerpoints set 10 | 按当前点券补入或扣除差额,最后返回 true,不单独检查差额操作结果 |
这些根语句已注册,但不表示未安装依赖时也可调用;仅查询某个插件是否存在可以使用 depend,不必先调用其经济接口。
概率
chance 数字 必填一个可求值数值,返回布尔值。大于 1 的数直接作为百分位阈值;小于等于 1 的数乘以 100,因此 0.5 与 50 使用同一阈值。
当前比较方式是在包含两端的整数 0~100 中随机取值,并判断“阈值大于随机值”。因此 chance 1 / chance 100 不是保证成功,整数百分比也不是严格连续概率。它适合允许这一离散误差的随机展示,不把它解释成精确百分比算法。
最大值与最小值
max [ 1 7 9 ]
min [ 1 7 9 ]分别返回 9.0、1.0。列表项是可求值参数;结果按小数比较,空结果集返回 0.0。无法转换的非数字内容按 0.0 参与,未及时完成的值或出错的项可能被略过。
max / min 还识别非列表的双值入口,但目前会提前消耗第一个值,结果不可靠,还可能把后续语句当作参数。使用上面的 Kether 列表形式,不使用 max 1 10 / min 1 10 作为可靠写法。
类型判断
typecheck 类型 值:类型和可求值的值都必填,返回布尔值;使用下列大写类型。无额外插件依赖,也不需要窗口。
| 类型 | 实际判断 |
|---|---|
INT | 值转成文字后能否解析为整数 |
DOUBLE | 值转成文字后能否解析为小数 |
BOOLEAN | 值转成文字后是否为不区分大小写的 true;不是“是否属于布尔类型”,false 会返回 false |
STRING | 是否为文字对象 |
LIST | 是否为 List |
MAP | 是否为 Map |
OBJECT | 是否非空 |
值为空或未及时取得时返回 false。这组语句用于当前求值结果,不会把字符串形式的列表或映射自动解析成对应对象。
Last updated on