-
Notifications
You must be signed in to change notification settings - Fork 0
Operators
Noogear edited this page Mar 16, 2026
·
2 revisions
所有操作符前均可加 ! 前缀取反(如 !null、!contains、!==)。
| 操作符 | 分类 | 说明 |
|---|---|---|
null |
空值检测 | 检查变量是否为 null |
instanceof |
类型检测 | 检查类型并自动窄化 |
== |
相等 | 相等比较 |
!= |
相等 | 不等比较 |
> |
数值 | 大于 |
>= |
数值 | 大于等于 |
< |
数值 | 小于 |
<= |
数值 | 小于等于 |
between |
数值 | 闭区间范围检查,value 为 [low, high]
|
starts_with |
字符串 | 前缀匹配 |
ends_with |
字符串 | 后缀匹配 |
matches |
字符串 | Java 正则全匹配 |
contains |
成员 | 字符串包含 / 集合成员检查 |
contains_value |
成员 | Map 值成员检查(仅限 Map 类型) |
in |
成员 | 检查变量值是否在给定列表中 |
empty |
空判断 | 检查集合、Map 或字符串是否为空 |
引擎内置常见拼写错误的自动提示:
| 错误拼写 | 建议修正 |
|---|---|
startsWith、startswith、start_with
|
starts_with |
endsWith、endswith、end_with
|
ends_with |
match、regex
|
matches |
include、includes、has
|
contains |
eq、is、equal、equals
|
== |
ne、neq、not
|
!= |
gt / lt / gte / lte
|
> / < / >= / <=
|
isEmpty、is_empty
|
empty |
containsvalue、containsValue、hasValue、has_value
|
contains_value |
instanceof 检查成功后,变量类型自动窄化为目标类,后续节点可直接访问子类属性:
variables:
entity: "entity"
flow:
- check: entity
op: "instanceof"
value: "org.bukkit.entity.Player"
# 窄化后可直接访问 Player 独有属性
- action: "log"
args: ["玩家名: {entity.playerName}"]- check: target
op: "null" # 变量为 null 时通过
- check: target
op: "!null" # 变量不为 null 时通过- check: name
op: "=="
value: "sword"
- check: type
op: "!="
value: "BOW"- check: damage
op: ">"
value: 100
- check: hp
op: "<="
value: "{maxHp} * 0.3"# 闭区间 [10, 50]
- check: damage
op: "between"
value: [10, 50]- check: name
op: "starts_with"
value: "DIAMOND_"
- check: name
op: "ends_with"
value: "_SWORD"# Java 正则全匹配
- check: name
op: "matches"
value: ".*_SWORD$"# 字符串包含
- check: name
op: "contains"
value: "sword"
# 集合成员检查
- check: items
op: "contains"
value: "diamond"# 检查变量值是否在给定列表中
- check: weaponType
op: "in"
value: ["DIAMOND_SWORD", "IRON_SWORD", "NETHERITE_SWORD"]# 集合为空时通过
- check: items
op: "empty"
# 集合不为空时通过
- check: items
op: "!empty"
# 字符串为空时通过
- check: name
op: "empty"支持类型:Collection、Map、String。
# 检查 Map 是否包含指定值
- check: metadata
op: "contains_value"
value: "diamond"仅限 Map 类型使用。若需检查 Map 是否包含指定键,请使用 contains。