ChromaticTooltips

[!INFO] Git Commit: 9c1a2d9 | Updated: 2026-10-28

物品提示(tooltip)美化与自定义 mod。在 1.7.10 上完全接管原版 tooltip 的渲染,通过可配置的主题(theme)、enricher 扩展点、 component 片段与行转换器,让物品提示的排版、配色、字体、 分组与图标都可由配置和资源包定制。

身份

属性 实测值
modid chromatictooltips(全小写;ChromaticTooltips.java:21)
modName ChromaticTooltips(驼峰;同文件 :22)
version Tags.VERSION —— ⚠️ 构建期生成的类,仓库中不存在
资源域 chromatictooltips(assets/chromatictooltips/)
Minecraft 1.7.10(acceptedMinecraftVersions = "[1.7.10]")
Java 文件 89
@Mod 位置 Java(ChromaticTooltips.java:13),非 Scala / Kotlin
生命周期 4 个 @Mod.EventHandler(全转发 proxy)
命令 0
快捷键 2(Z 翻页;上一页默认未绑定)
mixin 4(early 3 + late 1),5 个注入点
mixin 配置 3(全部 required: true,minVersion: 0.8.5-GTNH)
enricher 11 个类 / 12 个实例
行转换器 3
component 11
事件类 15
api 类型 16(6 接口 + 2 枚举 + 8 类)
配置类 3(general / enricher / stackamount)
注册内容 0 方块 / 物品 / 实体 / TileEntity / 维度
硬依赖 required-after:gtnhlib@ + [0.9.6,)

⚠️ modid 正确,但 version 指向仓库中不存在的类

@Mod(modid = ChromaticTooltips.MODID, version = Tags.VERSION, …)
public static final String MODID = "chromatictooltips";
public static final String NAME  = "ChromaticTooltips";

⚠️ Tags 类在整个仓库中不存在 —— find -name 'Tags.java' 命中 0,grep 'class Tags' 命中 0。 它由 GTNH MDK 在构建期生成(gradle.properties:77 generateGradleTokenClass = com.slprime.chromatictooltips.Tags)。

即:modid 可从源码直接查到,version 不可。 mcmod.info 里的 ${modVersion} 同为占位符。

依赖

依赖 声明 收录状态
gtnhlib required-after:gtnhlib@ + [0.9.6,) —— 硬依赖 + 版本区间 已登记为 GTNHLib,尚未成文

⚠️ 缺 GTNHLib 或版本 < 0.9.6 直接启动失败。 [0.9.6,) 是左闭右开区间。 ⚠️ 尾部多余分号(… + [0.9.6,);)会被 FML 当空条目忽略 —— 按字面数会以为有第二个依赖。

mixin(4 个,required: true 裁定)

配置 类 目标类 注入
early MixinGuiContainerCreative GuiContainerCreative renderToolTip @ HEAD, cancellable
early MixinGuiScreen(priority = 999) GuiScreen renderToolTip @ HEAD, cancellable
early MixinGuiScreen GuiScreen drawHoveringText @ HEAD, cancellable, remap = false
early ItemEnchantedBookMixin ItemEnchantedBook addInformation @ HEAD, cancellable
late MixinGuiContainerCreative GuiContainerCreative renderToolTip @ HEAD, cancellable

裁定:4 个目标全部是 Minecraft 1.7.10 原版类,恒定存在, 因此不存在「目标属第三方 mod 而缺该 mod 则启动即崩」的缺陷, 无需 addRequiredMod。

⚠️ 但 3 个配置都没有 plugin 字段, minVersion = 0.8.5-GTNH 硬性要求 GTNH 特制 Mixin 0.8.5 —— 用非 GTNH 版 Mixin 会被拒,且本 mod 不提供 IMixinConfigPlugin 放宽。

⚠️ drawHoveringText 是唯一 remap = false 的注入点 —— 混淆环境下若该成员名变化,因 required: true 会直接启动失败。 其余 4 个用默认 remap = true。

⚠️ GuiContainerCreative 被 early / late 各混入 1 次(同名同 76 行但实现不同), 按类名去重会少数 1 个。共 4 类 / 5 注入点。

入口与渲染链

条目 说明
mod 入口 - ChromaticTooltips @Mod,4 个生命周期全转发 proxy
ClientProxy - 客户端代理 全部注册逻辑:2 快捷键、3 监听器、12 enricher、3 转换器
CommonProxy 与 TooltipRenderer 服务端空实现 + 渲染器
TooltipHandler - 渲染总线 setRendererClass(Class) 传类对象
TooltipRegistry - 注册中心 addEnricher / addLineConverter(Pattern,…)

扩展点

条目 内容
enricher 清单 11 类 / 12 实例,ItemStatsEnricher 注册两次
行转换器 3 个,按静态 PATTERN 注册
api 包 16 = 6 接口 + 2 枚举 + 8 类
component 包 11 个渲染片段
事件包 15 个事件
util 包 15 个工具类
配置 3 个 @Config 类 + JSON 主题

mixin 明细

⚠️ 源码既有拼写错误(勿「顺手改正」)

位置 错误拼写 正确应为
component/DyncamicTextComponent Dyncamic Dynamic
事件包 前置说明 见各条目 ——

另:ChromaticTooltips.java 保留 MDK 模板注释 (// preInit "Run before anything else. …" (Remove if not needed))未清理。

⚠️ 与 ChromaticTooltipsCompat 是两个仓

分类 仓库 规模 职责
chromatictooltips(本条目) ChromaticTooltips/ 89 java、4 mixin 渲染引擎 + 主题 + 扩展点
chromatictooltipscompat ChromaticTooltipsCompat/ 60 mixin + 11 事件处理器 让第三方 mod 的 tooltip 改走本样式

⚠️ 后者是独立分类(已收录,见 ChromaticTooltipsCompat), 本 mod 的 api/ 与 event/ 主要供它使用。 本条目不涉及后者的任何内容。

关联