-
Notifications
You must be signed in to change notification settings - Fork 0
Check Node
Noogear edited this page Mar 9, 2026
·
3 revisions
check 节点用于检查变量是否满足条件。条件成立时继续执行后续节点;不成立时执行 on_fail(如果有),然后终止脚本。
- check: <variable>
op: "<operator>"
value: <value>
on_fail:
- # 条件不满足时执行的节点列表| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
check |
String | 是 | 检查的变量名 |
op |
String | 是 | 操作符(支持 ! 前缀取反) |
value |
any | 视操作符 | 比较目标值 |
on_fail |
List | 否 | 条件不满足时执行的节点列表 |
# 数值
value: 100
value: 3.14
# 字符串
value: "sword"
# 布尔
value: true
# 列表(用于 in / between)
value: ["sword", "bow", "axe"] # in:候选值列表
value: [10.0, 50.0] # between:[下界, 上界] 闭区间
# 变量引用
value: "{maxHp}"
# 数学表达式(数值操作符时自动解析)
value: "{maxHp} * 0.5"
# 类名(用于 instanceof)
value: "com.example.PlayerEntity"instanceof 检查成功后,变量类型自动窄化为目标类,后续节点可直接访问子类属性:
variables:
entity: "entity"
flow:
- check: entity
op: "instanceof"
value: "org.bukkit.entity.Player"
# 窄化后可直接访问 Player 独有属性
- action: "log"
args: ["玩家名: {entity.playerName}"]- check: target
op: "!null"
on_fail:
- return- check: damage
op: "between"
value: [10, 100]- check: hp
op: "<="
value: "{maxHp} * 0.3"- check: weaponType
op: "in"
value: ["DIAMOND_SWORD", "IRON_SWORD", "NETHERITE_SWORD"]- check: damage
op: ">"
value: 100
on_fail:
- action: "sendMessage"
args: ["伤害不足"]
- return操作符完整列表 → 操作符参考