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的显式预载。
相关条目
- ForgelinSetup 预载钩子 - 本类指定的 setup 类
- KotlinAdapter - 被预载的目标类