行转换器
基本信息
| 属性 | 值 |
|---|---|
| 位置 | src/main/java/com/slprime/chromatictooltips/converter/ |
| 类数 | 3 |
| 注册键 | 各自的静态 PATTERN(java.util.regex.Pattern) |
| 启用版本 | Minecraft 1.7.10 |
3 个类
| 类 | 注册实参 | 作用 |
|---|---|---|
ModifierConverter |
ModifierConverter.PATTERN |
文本修饰符 |
DividerTextConverter |
DividerTextConverter.PATTERN |
分隔线文本 |
DividerConverter |
DividerConverter.PATTERN |
分隔线 |
ClientProxy 的 preInit 尾部注册全部 3 个:
addLineConverter(ModifierConverter.PATTERN, new ModifierConverter());
addLineConverter(DividerTextConverter.PATTERN, new DividerTextConverter());
addLineConverter(DividerConverter.PATTERN, new DividerConverter());
⚠️ 3 个类 ↔ 3 次注册,严格一一对应(与 enricher 的 「11 类 / 12 实例」不同)。
关键机制:按正则而非按类型注册
TooltipRegistry 的签名为:
addLineConverter(Pattern regexp, ITooltipLineConverter converter)
⚠️ 三个实现类都 implements ITooltipLineConverter(同一个接口),
接口类型无法用来区分它们 —— 区分靠 Pattern 键。
这意味着:
- 可以注册同一个类的多个实例(配不同正则),接口方案做不到;
- 正则写在转换器类自己的静态字段里,不在
TooltipRegistry中。
⚠️ 与 enricher 形成对比:addEnricher(ITooltipEnricher) 只传实例,
没有正则键 —— 匹配靠 sectionId()(见 enricher 清单 中
ItemStatsEnricher 的两实例)。
与事件的关联
event/ 包中 TextLinesConverterEvent 是行转换器对应的事件。
另有 DividerConverter / DividerTextConverter 名字相近但用途不同
(一个画线、一个转文本),容易混淆。
关联
- ClientProxy - 注册处
- TooltipRegistry -
addLineConverter定义 - enricher 清单 - 对照的扩展点
- api 包 -
ITooltipLineConverter