module-gtnhmixins

基本信息

属性 值
modid gtnhmixins
Java 文件 12
加载插件 com.gtnewhorizon.gtnhmixins.core.GTNHMixinsCore
mixin 配置 mixins.gtnhmixins.json
产出 …-gtnhmixins-1.7.10.jar
启用版本 Minecraft 1.7.10

功能

GTNH 的 Mixin 加载器。mcmod.info 自述 UniMixins module that provides GTNHMixins extras and MixinExtras with the GTNH package name.\nDepends on: SpongeMixins。

关键常量(GTNHMixins.java)

public static final String NAME = "GTNHMixins";
public static final String MODID = "gtnhmixins";
public static final String VERSION = "GRADLETOKEN_VERSION";

⚠️ VERSION = "GRADLETOKEN_VERSION" 是构建期占位符, 且与 @Mod 注解里的 version = GTNHMixins.VERSION 联动 —— 即注解里的版本号在源码中不是字面量,要顺着常量才能看到它也是占位符。

12 个类

文件 作用
com/gtnewhorizon/gtnhmixins/GTNHMixins.java @Mod 主类 + 常量
…/IEarlyMixinLoader.java 早期 mixin 加载接口
…/ILateMixinLoader.java 晚期 mixin 加载接口
…/LateMixin.java 晚期 mixin 注解
…/MinecraftURLClassPath.java 类路径处理
…/Reflection.java 反射工具
…/core/GTNHMixinsCore.java IFMLLoadingPlugin
…/mixins/LateMixinOrchestrationMixin.java @Mixin(本模块唯一 1 个 @Mixin 类)
io/…/gtnhmixins/GTNHMixinsConfig.java 配置
io/…/gtnhmixins/GTNHMixinsModule.java 空 @Mod 标记类
io/…/gtnhmixins/asm/LegacyGTNHMixinExtrasGenerator.java transformer(@MixinSafeTransformer),不是 @Mixin
io/…/gtnhmixins/util/LaunchClassLoaderUtils.java 启动器工具

⚠️ 与 module-spongemixins 的类重复

module-spongemixins 目录下也有 com/gtnewhorizon/gtnhmixins/GTNHMixins.java 与 MinecraftURLClassPath.java,实测:

类 两模块间关系
MinecraftURLClassPath.java 完全相同(diff 无差异)
GTNHMixins.java 不同 —— spongemixins 版去掉了两行 @Mod 注解

这是 SpongeMixins「模拟」GTNHMixins 的实现方式: 同一套类在两个包里各存一份,spongemixins 那份故意不带 @Mod, 避免两个 modid 同时注册。

⚠️ 所以「GTNHMixins 类在本仓有 2 份」是事实, 但说「源码复制粘贴有误」是错的 —— 这是刻意的。

mixin 配置

项 值
文件 mixins.gtnhmixins.json
package com.gtnewhorizon.gtnhmixins.mixins
required true
minVersion 0.8.3-GTNH
refmap mixins.gtnhmixins.refmap.json
mixins 1 个:LateMixinOrchestrationMixin
plugin 无

⚠️ minVersion 是 0.8.3-GTNH(带 -GTNH 后缀), 是本仓 4 个 mixin 配置中唯一要求 GTNH 特制 Mixin 版本的 (其余为 0.8、0.8.3、0.6)。它对 Mixin 版本的要求最严。

⚠️ required: true 且 mixins 列表中的 LateMixinOrchestrationMixin 目标是 LoadController(remap = false)—— 该类由 MixinBooter 提供,不是 Minecraft 类。 若目标缺失且无 IMixinConfigPlugin 兜底,Mixin 会在启动期报错。 本配置没有 plugin 字段,即没有 shouldApplyMixin 兜底。

相关条目