模块总览

基本信息

属性 值
仓库 UniMixins(LegacyModdingMC/UniMixins)
Gradle 模块数 11
@Mod 数 10
modid 数 10(module-common 除外)
Java 文件 87
Minecraft 1.7.10(根 gradle.properties:12)
Forge 10.13.4.1614-1.7.10(gradle.properties:13)

⚠️ 核心结论:一个仓库 = 10 个 modid

分类名 unimixins 不等于单个 modid。本仓是 Gradle 多模块工程, 每个模块产出独立 jar、带独立 @Mod 注解与独立 modid。

Gradle 模块 modid(实测) Java 加载插件 FMLCorePlugin MixinConfigs
module-all unimixins 2 …unimixins.all.AllCore 4 个(见下)
module-mixin unimixins-mixin 4 …unimixins.mixin.MixinCore 无
module-compat unimixins-compat 10 …unimixins.compat.CompatCore 无
module-compatfuture unimixins-compatfuture 3 …compatfuture.CompatFutureCore 无
module-mixinextras mixinextras 2 …unimixins.mixinextras.MixinExtrasCore 无
module-mixinbooterlegacy mixinbooterlegacy 22 …mixinbooterlegacy.MixinBooterLegacyPlugin 无(自带 mixin.mixinbooterlegacy.json)
module-gtnhmixins gtnhmixins 12 com.gtnewhorizon.gtnhmixins.core.GTNHMixinsCore mixins.gtnhmixins.json
module-spongemixins spongemixins 5 无 无
module-mixingasm mixingasm 8 无 mixingasm.mixin.json
module-gasstation gasstation ⚠️ 12 com.falsepattern.gasstation.core.GasStationCore mixins.gasstation.json
module-common 无 modid 7 无 无

⚠️ gasstation 的 modid 在源码里是占位符: module-gasstation/.../Tags.java:8 写 public static final String MODID = "GRADLETOKEN_MODID";, 真实值由 module-gasstation/build.gradle:40 的 replace("GRADLETOKEN_MODID", "gasstation") 在处理资源时替换。 mcmod.info 里直接写 "modid": "gasstation"。照抄源码字面量会得到错误 modid。

⚠️ spongemixins 与 mixingasm 的 manifest 里没有 FMLCorePlugin —— 它们只声明 TweakClass + ForceLoadAsMod, 不是 FML 加载插件(IFMLLoadingPlugin),而是纯 Mixin 提供方。

⚠️ module-common 没有任何 @Mod,是纯内部库(配置工具 + 版本比较 + 自检), 被其它模块 shadow 打包并 relocate 到 <模块>.repackage.common。

统一的 manifest 约定

除 module-common 外,所有模块的 shadowJar manifest 都带这 4 项:

属性 值
TweakClass org.spongepowered.asm.launch.MixinTweaker
ForceLoadAsMod true
FMLCorePluginContainsFMLMod true
FMLCorePlugin 各模块的 *Core / *Plugin(spongemixins 与 mixingasm 除外)

module-all 与 module-mixin 另加 Java agent 三件套: Premain-Class / Agent-Class = org.spongepowered.tools.agent.MixinAgent, 以及 Can-Redefine-Classes / Can-Retransform-Classes = true。

module-all 的 MixinConfigs 重复项

module-all/build.gradle 声明:

'MixinConfigs': 'mixins.gtnhmixins.json,mixins.gasstation.json,mixins.gtnhmixins.json,mixingasm.mixin.json'

⚠️ mixins.gtnhmixins.json 出现了两次(第 1 与第 3 段), 是源码中实际存在的重复项,不是抄写错误。 module-all 本身不含这两个 json —— 它们由被聚合的子模块提供。

各模块条目