LegacyGTNHMixinExtrasGenerator
基本信息
| 属性 | 值 |
|---|---|
| 全名 | io.github.legacymoddingmc.unimixins.gtnhmixins.asm.LegacyGTNHMixinExtrasGenerator |
| 文件 | module-gtnhmixins/src/main/java/…/gtnhmixins/asm/LegacyGTNHMixinExtrasGenerator.java |
| 行数 | 50 |
| 注解 | @MixinSafeTransformer |
| 实现 | IClassTransformer |
| 开关 | enableLegacyGTNHMixinExtrasPackage(默认 true) |
| 启用版本 | Minecraft 1.7.10 |
⚠️ 这不是 mixin
@MixinSafeTransformer
public class LegacyGTNHMixinExtrasGenerator implements IClassTransformer {
⚠️ 用 grep '@Mixin' 会命中本文件 —— 因为 @MixinSafeTransformer
以 @Mixin 开头。但它不是 @Mixin 类,
而是 IClassTransformer 实现(即 ASM transformer)。
本仓真实的 @Mixin 类只有 5 个(3 个模块),详见
mixin 配置对照。
功能
为旧版 MixinExtras 0.1.1 生成 com.gtnewhorizons.mixinextras 包下的类,
供老 mod 使用。对应 GTNHMixinsConfig 的
enableLegacyGTNHMixinExtrasPackage(默认 true,注释标明已 deprecated)。
@MixinSafeTransformer 是本仓
module-mixingasm 提供的注解(IMixinSafeTransformer 的实现标注),
表示该 transformer 可安全地与 mixin 体系共存。
实现要点
⚠️ 失败即硬失败:
throw new RuntimeException("Failed to generate class " + name);
类生成失败时直接抛 RuntimeException,没有降级、没有 try-catch 吞异常。
⚠️ 生成过程有严格的类路径顺序要求,源码注释:
If NEI is on the class path before CCL (which would cause the game to crash immediately in …) and if it fails, it will call
Class.forNamefor the class being loaded, causing a …
即:NEI 必须在 CCL 之前出现在类路径上,否则游戏会立即崩溃。 这是本仓记录的唯一一条关于第三方 mod 类路径顺序的硬性约束。
⚠️ 本类使用 LOGGER.trace(trace 级别,非 debug/info),
默认日志级别下看不到「Generating class …」的输出。
相关条目
- module-gtnhmixins - 所属模块
- GTNHMixinsConfig - 对应开关
- mixin 配置对照 -
@Mixin真实数量为 5 - module-mixingasm -
@MixinSafeTransformer的来源模块