Thaumcraft
Thaumcraft 集成插件
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.github.lunatrius.ingameinfo.integration.thaumcraft.Thaumcraft |
| 行数 | 29 |
| 父类 | Plugin |
| 依赖的 modid | Thaumcraft |
| 提供的 tag | 见下 |
⚠️ 源码带 @SuppressWarnings("UnusedDeclaration") ——
因为该类只被 PluginLoader 用字符串反射实例化
(PluginLoader.java:26-30 的字符串数组),
没有任何静态引用,编译器会报「未使用的声明」。
⚠️ 依赖声明为 compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')({transitive = false})
modid 实测与陷阱
modid Thaumcraft(首字母大写)恰与显示名相同 —— 5 个集成里唯一 modid 与显示名词面一致的。
对应 Wiki 分类 thaumcraft(已成文)。
三个覆写
| 方法 | 返回 |
|---|---|
getDependency() |
Names.Mods.*_MODID = Thaumcraft |
getDependencyName() |
Names.Mods.*_NAME = Thaumcraft |
load() |
TagThaumcraft.register() |
⚠️ getDependency() 与 getDependencyName() 分别读
Names 的 Mods 段的两个不同常量 ——
modid 与显示名分开定义。modid 的异常(如 Blood Magic 的 AWWayofTime)
无法从显示名推断,只能看 Names 或 Loader.isModLoaded 的实参。
load
public void load() { TagThaumcraft.register(); }
由 PluginLoader.postInit(:60-69)在
preInit 筛出 canLoad() 为真的插件后调用。
⚠️ load() 只注册 tag,不注册任何事件、命令或渲染钩子。
本 mod 对第三方模组的全部介入都是「读它们的值,显示到 HUD」——
不修改对方任何状态。
getDependencyVersion 的覆写(:21-23)
public String getDependencyVersion() { return thaumcraft.common.Thaumcraft.VERSION; }
5 个集成里只有它和 TerraFirmaCraft 覆写了这个方法。
本集成直接读对方的 VERSION 常量 —— 要求该字段编译期可见
(compileOnly 提供了)。对方改名或改类型会编译期失败,
比字符串反射安全。
toString()(Plugin 的 :23-31)因此输出
Thaumcraft 4.2.3.5,会出现在模组列表的
「Compiled against […]」里。
相关
- Plugin - 基类(
canLoad/toString) - PluginLoader - 反射加载方
- TagThaumcraft - 本插件注册的 tag
- Names - modid 与显示名常量
- TagIntegration - 集成 tag 的异常处理基类