简体中文
事件 API
EmakiLevel 当前有 5 个同步 Bukkit 事件. runtime 只在当前线程拥有在线玩家时发布; 公开同步写 API 对错误线程返回 WRONG_THREAD
| 事件 | 触发时机 | Cancellable | 可修改字段 | 取消/结果效果 |
|---|---|---|---|---|
PlayerExpGainEvent | 倍率/日上限调整后, 经验和日配额写入前 | 是 | amount | 取消或最终 <=0 阻止经验与配额消耗; 正数仍受剩余配额限制 |
PlayerPreLevelUpEvent | 全部校验后, journal/扣费/等级/奖励/actions 前 | 是 | 无 | 阻止整次 level-up transaction |
PlayerLevelUpEvent | 经验驱动升级, 奖励与 success actions 提交后 | 否 | 无 | post, 不可回滚 |
PlayerMaxLevelReachedEvent | 经验驱动升级首次跨到配置上限后 | 否 | 无 | milestone post; 直接 setLevel 不属于此路径 |
PlayerLevelChangeEvent | add/remove/set/reset 等管理型等级变更实际提交后 | 否 | 无 | post; 不替代经验驱动 PlayerLevelUpEvent |
所有事件均在玩家 owner thread. 事件表示内存 transaction 的对应阶段, 不保证异步持久化已写入磁盘. 监听器不得阻塞等待 I/O; 跨玩家工作应分别重新调度