Repository navigation
Event Mapping
Noogear edited this page Mar 11, 2026
·
3 revisions
GloomLib 脚本引擎驱动的事件→动作映射。每个 YAML 文件定义一个事件监听脚本,将 Bukkit 事件映射到指示器显示等动作。
完整的脚本引擎语法参考 → 脚本引擎
数学表达式语法参考 → 数学表达式
| 字段 | 类型 | 说明 |
|---|---|---|
id |
String | 唯一标识(省略时使用文件名) |
event |
String | 监听的 Bukkit 事件全限定类名 |
priority |
int | 事件优先级(见下表) |
ignore-cancelled |
boolean | 默认 true;为 true 时已被其他插件取消的事件不会触发脚本 |
variables |
Map | 变量映射:变量名: 事件属性路径
|
flow |
List | 条件与动作列表(顺序执行) |
| 值 | 对应 Bukkit 优先级 |
|---|---|
-2 |
LOWEST |
-1 |
LOW |
0 |
NORMAL(默认) |
1 |
HIGH |
2 |
HIGHEST |
3 |
MONITOR |
- check: <变量名>
op: <操作符>
value: <期望值>
on_fail: # 可选,条件不满足时执行
- action: [args...]
- return常用操作符:==、!=、>、<、>=、<=、instanceof、!instanceof
完整操作符列表 → 脚本引擎 - 操作符参考
| 动作 | 参数 | 说明 |
|---|---|---|
showIndicator |
[target, source, value, tag] |
触发指示器显示 |
return |
无 | 提前结束流程 |
参数中可使用 {变量名} 引用 variables 中声明的变量,支持 {cause.name} 嵌套属性访问。
id: damage-indicator
event: org.bukkit.event.entity.EntityDamageByEntityEvent
priority: 3
ignore-cancelled: true
variables:
target: entity
source: damager
value: finalDamage
cause: cause
critical: critical
flow:
- check: target
op: instanceof
value: org/bukkit/entity/LivingEntity
- check: value
op: ">"
value: "0"
- check: critical
op: "!="
value: true
on_fail:
- showIndicator: ["{target}", "{source}", "{value}", "CRITICAL"]
- return
- showIndicator: ["{target}", "{source}", "{value}", "{cause.name}"]id: regain-indicator
event: org.bukkit.event.entity.EntityRegainHealthEvent
priority: 3
ignore-cancelled: true
variables:
target: entity
amount: amount
reason: regainReason
flow:
- check: target
op: instanceof
value: org/bukkit/entity/Player
- check: amount
op: ">"
value: "0"
- showIndicator: ["{target}", "{target}", "{amount}", "{reason.name}"]