ForgelinPlugin 加载入口

基本信息

属性 值
所属 Forgelin(modid forgelin)
类型 IFMLLoadingPlugin(FML core mod 加载插件)
源码 preloader/ForgelinPlugin.kt:12
配置 gradle.properties 的 coreModClass = preloader.ForgelinPlugin
声明版本 @MCVersion("1.7.10")(行 10)
显示名 @Name("Forgelin Core")(行 11)

作用

Forgelin 是 core mod(非游戏 mod)。本类在 Minecraft 主类加载前被 FML 构造, 负责让 Kotlin 运行时在其它 mod 类加载之前就位。

各接口方法返回值:

方法 返回 行号
getASMTransformerClass() arrayOfNulls(0) —— 空数组,不做任何字节码转换 13-15
getModContainerClass() null —— 不提供自定义 ModContainer 17-19
getAccessTransformerClass() null —— 不使用 AT 26-28
injectData(data) 空实现 25
getSetupClass() "net.shadowfacts.forgelin.preloader.ForgelinSetup" 21-23

因为 ASM transformer 为空,Forgelin 不修改任何其它 mod 的字节码, 它只通过「预载 + PreInit 扫描」两条路径工作。

加载时序

ForgelinPlugin (构造)
      ↓
ForgelinSetup.injectData()  —— 预载 KotlinAdapter
      ↓
Minecraft 启动
      ↓
Forgelin.onPreInit()       —— 扫描并修正所有 Kotlin mod 的事件订阅

@MCVersion("1.7.10") 是显式锁版本声明,与 gradle.properties 的 minecraftVersion = 1.7.10 / forgeVersion = 10.13.4.1614 一致。

限制

  • injectData 空实现,因此本插件不读取 FML 传入的 mcLocation / coremodList 等数据,无法据此调整行为。
  • 返回空 transformer 数组意味着 Forgelin 无法拦截它自己 Kotlin 类的加载顺序问题, 只能依赖 ForgelinSetup 的显式预载。

相关条目