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 […]」里。

相关