mixin 配置对照

基本信息

属性 值
配置文件数 4(含 3 个 refmap)
@Mixin 类数 5(分布 3 个模块)
启用版本 Minecraft 1.7.10

4 个配置的逐项对照(全部实测)

项 mixin.mixinbooterlegacy.json mixins.gtnhmixins.json mixingasm.mixin.json mixins.gasstation.json
所属 module-mixinbooterlegacy module-gtnhmixins module-mixingasm module-gasstation
package io.github.tox1cozz.mixinbooterlegacy.loader.mixin com.gtnewhorizon.gtnhmixins.mixins makamys.mixingasm.mixin com.falsepattern.gasstation.mixins.mixin
required true true true true
minVersion 0.8 0.8.3-GTNH 0.6 0.8.3
refmap mixin.mixinbooterlegacy.refmap.json mixins.gtnhmixins.refmap.json 无 mixins.gasstation.refmap.json
plugin 无 无 makamys.mixingasm.MixinConfigPlugin com.falsepattern.gasstation.mixins.DevMixinPlugin
mixins 条目 1:LoadControllerMixin 1:LateMixinOrchestrationMixin 无(空) [](空)
compatibilityLevel 无 无 无 JAVA_8
target 无 无 无 @env(PREINIT)
是否列入 manifest 否 是 是 是

⚠️ required: true 的启动崩溃风险

4 个配置全部是 required: true。 这是本会话特别要求核对的字段。

Mixin 语义:required: true 表示若任一列出的 mixin 应用失败, Mixin 会直接抛错中止启动,而不是降级跳过。

逐条核对每个 mixins 条目的目标类:

配置 mixin 目标类 目标来源 有无 plugin 兜底
mixin.mixinbooterlegacy.json LoadControllerMixin LoadController(remap = false) MixinBooter(本仓提供) 无
mixins.gtnhmixins.json LateMixinOrchestrationMixin LoadController(remap = false) MixinBooter(本仓提供) 无
mixingasm.mixin.json — — — 有 MixinConfigPlugin
mixins.gasstation.json — — — 有 DevMixinPlugin

裁定:前两个配置虽 required: true 且没有 plugin 兜底, 但它们的 mixin 目标 LoadController 由本仓自己提供 (module-mixinbooterlegacy 与 module-gtnhmixins 都含 LoadController)。

⚠️ 因此这不属于「目标属第三方 mod 而缺该 mod 就启动即崩」那类缺陷 —— LoadController 是 UniMixins 自带的 mixin loader 内部类,不是外部 mod 的类。

⚠️ 但 mixin.mixinbooterlegacy.json 未列入本模块 manifest 的 MixinConfigs(见 module-mixinbooterlegacy), 其激活路径与另两个不同,不能一概而论。

LoadController 被 3 个模块各混 1 次

模块 mixin 类
module-mixinbooterlegacy LoadControllerMixin
module-gtnhmixins LateMixinOrchestrationMixin
module-gasstation mixins/mixin/LoadControllerMixin

⚠️ 其中 module-gasstation 的那个因 mixins 数组为空而不被应用(详见该条目)。 但 module-all 的 MixinConfigs 同时列了 mixins.gtnhmixins.json(且重复一次)与 mixins.gasstation.json, 在聚合场景下 LoadController 会同时被 gtnhmixins 的 mixin 与 (若 gasstation 配置被外部覆盖)gasstation 的 mixin 命中。

4 个 mixin 的目标

类 目标 remap
LoadControllerMixin(mixinbooterlegacy) LoadController false
LateMixinOrchestrationMixin(gtnhmixins) LoadController false
module-gasstation 的 LoadControllerMixin LoadController false
dev/ModDiscovererMixin ModDiscoverer 见源码
dev/LoaderMixin Loader 见源码
无(LegacyGTNHMixinExtrasGenerator 不是 mixin) — —

⚠️ 面向 LoadController 的 3 个全部 remap = false —— 因为目标是 mixin loader 自己的类,不参与 Minecraft 混淆名映射。 若误设为 true,会去找不存在的混淆名而失败。

⚠️ 另 2 个(module-gasstation 的 dev/ModDiscovererMixin、 dev/LoaderMixin)在本仓配置中未被任何 json 引用。

⚠️ 本仓只有 5 个 @Mixin 类(3 个模块)。 LegacyGTNHMixinExtrasGenerator 虽被 grep @Mixin 命中, 但那是 @MixinSafeTransformer 的子串 —— 它实际是 implements IClassTransformer 的 transformer, 见 LegacyGTNHMixinExtrasGenerator。

命名不一致

⚠️ refmap / 配置文件的命名前缀不统一: 3 个用 mixins.<模块>.(复数),唯独 mixinbooterlegacy 用 mixin.mixinbooterlegacy.(单数)。按统一前缀 glob 查找会漏掉它。

相关条目