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 的静态方法, 因此「城镇内能否爆炸」实际由 EXPLOSIONS flag 决定 (见 FlagType),而非独立开关。

相关条目