event 包
基本信息
| 属性 | 值 |
|---|---|
| 位置 | src/main/java/com/slprime/chromatictooltips/event/ |
| 类数 | 15 |
| 启用版本 | Minecraft 1.7.10 |
15 个事件类(实测完整清单)
| 类 | 对应扩展点 |
|---|---|
TooltipEvent |
基类 / 总入口 |
RenderTooltipEvent |
渲染阶段 |
TooltipEnricherEvent |
enricher 通用 |
TextLinesConverterEvent |
行转换 |
TitleEnricherEvent |
TitleEnricher |
StackSizeEnricherEvent |
StackSizeEnricher |
ItemInfoEnricherEvent |
ItemInfoEnricher |
FluidInfoEnricherEvent |
FluidInfoEnricher |
EnchantmentEnricherEvent |
EnchantmentEnricher |
ContextInfoEnricherEvent |
ContextInfoEnricher |
ModInfoEnricherEvent |
ModInfoEnricher |
AttributeEnricherEvent |
ItemStatsEnricher(属性) |
HotkeyEnricherEvent |
HotkeyEnricher |
FoodEffectsEvent |
FoodEffectsHandler |
FoodStatsEvent |
FoodStatsHandler |
⚠️ 15 个事件 ≠ 15 个扩展点
enricher 包 有 11 个 enricher 类,
但只有 9 个 *EnricherEvent 与之对应 ——
KeyboardModifierEnricher 与 OreDictionaryEnricher 没有专属事件。
剩余 6 个事件各有归属:
| 事件 | 归属 |
|---|---|
TooltipEvent |
基类 / 总入口 |
RenderTooltipEvent |
渲染阶段 |
TooltipEnricherEvent |
enricher 通用机制 |
TextLinesConverterEvent |
行转换器 |
FoodEffectsEvent |
FoodEffectsHandler |
FoodStatsEvent |
FoodStatsHandler |
即 9(enricher 专属)+ 6(机制 / handler)= 15。 不要把事件数与 enricher 数一一对应。
2 个事件监听器
ClientProxy 的 preInit 注册 3 个监听器:
TooltipUtils.registerEventListener(this); // ClientProxy 自身
TooltipUtils.registerEventListener(new FoodEffectsHandler());
TooltipUtils.registerEventListener(new FoodStatsHandler());
⚠️ 后两个对应 FoodEffectsEvent / FoodStatsEvent。
监听器无静态字段引用,直接 new 后注册(preInit 内即成孤儿对象,
仅靠 Forge 总线的强引用存活)。
⚠️ 注册走 TooltipUtils.registerEventListener(...),
不是 MinecraftForge.EVENT_BUS.register(...) —— 有一层自封装。
命名规则
| 后缀 | 数量 | 含义 |
|---|---|---|
*EnricherEvent |
10 | 含 TooltipEnricherEvent(通用)+ 9 个专属 |
*Event(其余) |
5 | TooltipEvent、RenderTooltipEvent、TextLinesConverterEvent、FoodEffectsEvent、FoodStatsEvent |
⚠️ TooltipEnricherEvent 是通用机制事件,
不是某个具体 enricher 的事件 —— 它比 9 个专属事件更「上层」。
按「*EnricherEvent = 专属事件」统计会多数 1 个。
API 面向 Compat 仓
本包 15 个事件与 api 包 的 16 个类型 共同构成给第三方 mod 的扩展面, 由 ChromaticTooltipsCompat (60 个 mixin + 11 个事件处理器)实际使用。
⚠️ 本 mod 自有的 4 个 mixin 只针对 Minecraft 原版类, 不 fire 这些事件给外部 mod。
关联
- ClientProxy - 3 个监听器注册处
- api 包 - 事件参数用到的数据类
- enricher 清单 - 9 个专属事件的来源
- util 包 -
FoodEffectsHandler/FoodStatsHandler - ChromaticTooltipsCompat - 主要消费方