module-mixingasm

基本信息

属性 值
modid mixingasm
Java 文件 8
加载插件 无
mixin 配置 mixingasm.mixin.json
TweakOrder 0
产出 …-mixingasm-1.7.10.jar
启用版本 Minecraft 1.7.10

功能

mixin 混入 ASM transformer 的桥接层。mcmod.info 自述 UniMixins module that implements Mixingasm (version: ${extraVersion}).

让 IMixinSafeTransformer 之类的 transformer 能安全地经由 mixin 生效, 从而在本仓的 Mixin 体系内复用 transformer 机制。

8 个类

文件 作用
makamys/mixingasm/Mixingasm.java 常量:MODID = "mixingasm"
makamys/mixingasm/MixingasmModule.java 空 @Mod 标记类
makamys/mixingasm/forge/MixingasmMod.java @Mod(modid = Mixingasm.MODID, …)
makamys/mixingasm/forge/IMixinSafeTransformer.java transformer 安全接口
makamys/mixingasm/forge/MixinSafeTransformer.java 实现
makamys/mixingasm/forge/MixinConfigPlugin.java IMixinConfigPlugin 实现
makamys/mixingasm/forge/ConfigHelper.java 配置辅助
makamys/mixingasm/forge/TransformerInclusions.java transformer 白名单

mixin 配置

项 值
文件 mixingasm.mixin.json
package makamys.mixingasm.mixin
required true
minVersion 0.6(本仓 4 个配置中最低)
refmap 无(字段缺省)
plugin makamys.mixingasm.MixinConfigPlugin
mixins / client / server 均无(空配置)

⚠️ 本配置唯一指定了 plugin(MixinConfigPlugin), 因此具备 shouldApplyMixin 钩子 —— 与 mixins.gtnhmixins.json 没有 plugin 的情况相反。 详见 mixin 配置对照。

⚠️ minVersion = "0.6" 比其它配置(0.8 / 0.8.3 / 0.8.3-GTNH)宽松, 即本模块不要求 0.8 系列的 Mixin。

⚠️ 配置里没有 mixins 数组,也没有 refmap,但本模块 也没有任何 @Mixin 类(@Mixin 计数为 0)—— 该配置是空壳, 真正作用靠 plugin 侧。

实现要点

⚠️ manifest 里没有 FMLCorePlugin,只有 TweakClass + ForceLoadAsMod

  • MixinConfigs + TweakOrder: 0。

TweakOrder = 0 意味着本模块的 tweaker 最先执行 (Forge 1.7.10 中 TweakOrder 越小越早)。这是必要设计: 它是桥接层,必须在其它模块的 mixin 生效前就位。

⚠️ MODID = "mixingasm" 在两个类里各定义一份: makamys/mixingasm/Mixingasm.java:29 与 makamys/mixingasm/forge/MixinConfigPlugin.java:14。 后者是重复声明(同值),不是不同 modid。

相关条目