ExtraEventsHandler
基本信息
| 属性 | 值 |
|---|---|
| 类名 | mytown.protection.eventhandlers.ExtraEventsHandler |
| 文件 | src/main/java/mytown/protection/eventhandlers/ExtraEventsHandler.java |
| 行数 | 80 |
| 订阅方法 | 1 个 @SubscribeEvent |
| 访问方式 | ExtraEventsHandler.getInstance() |
| 启用版本 | Minecraft 1.7.10 |
功能
与 ProtectionHandlers 分开的补充事件挂接, 目前只处理爆炸。
| 事件 | 优先级 | 方法 |
|---|---|---|
ExplosionEvent.Start |
默认 | onExplosion(ExplosionEvent.Start ev) |
选用 ExplosionEvent.**Start** 而非 ExplosionEvent.Detonate ——
在爆炸开始时即可拦截,而不是等方块已被炸掉之后。
实现要点
- 由 Mod 入口 的
registerHandlers()注册到MinecraftForge.EVENT_BUS(只挂 Forge 总线,不像ProtectionHandlers那样双总线注册)。 - 采用
getInstance()单例,而非ProtectionHandlers的公开instance字段 —— 两种单例暴露风格在本 mod 内不统一。 - 爆炸判定复用 ProtectionManager 的静态方法,
因此「城镇内能否爆炸」实际由
EXPLOSIONSflag 决定 (见 FlagType),而非独立开关。
相关条目
- ProtectionHandlers - 20 个事件的主挂接点
- ProtectionManager - 判定实现
- FlagType -
EXPLOSIONSflag - Mod 入口 - 事件总线注册