简体中文
事件 API
事件位于 emaki.jiuwu.craft.attribute.api.event 包. 全部事件均为同步派发的可取消 Bukkit 事件, 仅在 runtime 持有事件所需 live target 时发布
| 事件 | 触发时机 | 线程 | 可修改字段 | 取消效果 | runtime 路径 |
|---|---|---|---|---|---|
EmakiAttributeDamageEvent | 伤害计算后, 最终应用前 | target/attacker 共同 owner thread | finalDamage | 取消或最终值 <=0 阻止伤害 | damage application service; 纯 calculateDamage 不发 |
PlayerResourceConsumeEvent | 资源扣减前 | 玩家 owner thread | amount | 阻止扣减, 公开操作返回取消失败 | consumeResource 与进入同一 service 的 runtime 路径 |
PlayerAttributePointAllocateEvent | 属性点分配提交前 | 玩家 owner thread | amount | 阻止分配 | ParentAttributeService 分配路径 |
PlayerAttributePointResetEvent | 重置提交前 | 玩家 owner thread | 无 | 阻止重置 | ParentAttributeService 重置路径 |
监听器修改的值在监听器返回后重新校验. 非 owner/异步路径不得把 Bukkit 事件 off-thread 发出; 需要可靠拦截时先用 owner scheduler 调度. 第三方 provider/gate 不在 event 包, 而位于 emaki.jiuwu.craft.attribute.api.extension