module-spongemixins
基本信息
| 属性 | 值 |
|---|---|
| modid | spongemixins |
| Java 文件 | 5 |
| 加载插件 | 无 |
| 产出 | …-spongemixins-1.7.10.jar |
| 启用版本 | Minecraft 1.7.10 |
功能
SpongeMixins 的 1.7.10 模拟层。mcmod.info 自述
UniMixins module that provides an emulation of SpongeMixins (version: ${extraVersion} from GTNHMixins).
即:让 Sponge 生态(SpongePowered 系 mod)以为自己在用官方 SpongeMixins, 实际被重定向到 GTNHMixins。
5 个类
| 文件 | 作用 |
|---|---|
ru/timeconqueror/spongemixins/SpongeMixins.java |
@Mod 主类 |
ru/timeconqueror/spongemixins/core/SpongeMixinsCore.java |
核心逻辑 |
ru/timeconqueror/spongemixins/MinecraftURLClassPath.java |
类路径 |
com/gtnewhorizon/gtnhmixins/GTNHMixins.java |
去 @Mod 的 GTNHMixins 副本 |
com/gtnewhorizon/gtnhmixins/MinecraftURLClassPath.java |
与 gtnhmixins 版完全相同 |
SpongeMixins 主类的特殊之处
@Mod(modid = SpongeMixins.MODID, version = "2.0.1", name = SpongeMixins.NAME, acceptableRemoteVersions = "*")
⚠️ 本模块是全仓唯一把版本号写成字面量 "2.0.1" 的 @Mod ——
其余 9 个模块全是 @VERSION@ 占位符或 GRADLETOKEN_VERSION 常量。
说「所有模块版本都是占位符」会漏掉这个例外。
⚠️ SpongeMixins.NAME 的值为 "SpongeMixins Loader"(带 Loader 后缀),
而 MODID = "spongemixins"。
⚠️ 源码中 NAME 与 MODID 两个常量都带
@deprecated use {@link GTNHMixins#NAME} instead / MODID 标注,
即 SpongeMixins 是待废弃的兼容层,GTNHMixins 才是正解。
实现要点
⚠️ manifest 里没有 FMLCorePlugin,只有 TweakClass + ForceLoadAsMod
FMLCorePluginContainsFMLMod。因此:
- 本模块不是
IFMLLoadingPlugin,不走 FML 加载插件机制; - 不会被 module-all 的
EmbeddedFMLCorePlugins.txt聚合 (该文件由各子模块 manifest 的FMLCorePlugin属性拼成); - 但会被
module-mixin的自检检查 ——SanityCheckHelper.checkIfJarPrefixesExist的前缀列表里含"spongemixins-"。
⚠️ module-spongemixins/build.gradle 有
relocate 'com.gtnewhorizon', 'ru.timeconqueror.spongemixins.repackage.com.gtnewhorizon'
—— 把 com.gtnewhorizon 整个包重定位进自己的命名空间。
相关条目
- 模块总览 - 10 模块对照
- module-gtnhmixins - 共享 2 个类,本模块版去掉
@Mod - module-mixin - 自检会检查
spongemixins-前缀 - SanityCheckHelper -
checkIfJarPrefixesExist