介绍
介绍由机器翻译自 Modrinth 原页面,仅供参考。
MixinBooter
让所有适用于模组的 Mixin 都能轻松运行在 1.8 – 1.12.2 上
- 当前 MixinExtra 版本:0.5.4
伪更新日志:
- 从 4.2 版本开始,MixinBooter 的 API 发生了变化,所有使用 Mixin 的模组都建议依赖 MixinBooter,即使这些模组只是将 Mixin 注入原版、Forge 或前置库类。这样可以避免 Mixin 版本不匹配导致模组在尝试实现模组 Mixin 时崩溃(说的就是你,VanillaFix)。感谢 @embeddedt 的建议以及对我引入此项改动的帮助!
- 从 5.0 版本开始,由 @LlamaLad7 开发的 MixinExtras 已被内置。开发者可以使用它。
- 从 8.0 版本开始,MixinBooter 现在可以运行在 1.8 – 1.12.2 上。一个构建版本即可适用于所有这些版本!(待办:支持 LiteLoader?)
- 从 8.4 版本开始,MixinBooter 会主动尝试与 SpongeForge 兼容
- 从 9.2 版本开始,MixinBooter 为 1.8.x 的使用场景重新启用了旧版的 MixinLoader 注解。
- 从 10.0 版本开始,MixinBooter 遵循 Mixin 0.8.7
- 从 11.0 版本开始,MixinBooter 基于 CleanMix 构建,旨在创建一个与 Cleanroom 统一的后端。
- 不再需要自行声明注解处理器的依赖。
- 新增配置文件(
config/mixinbooter.cfg),用于将 Mixin 配置列入黑名单以及切换调试选项 - 专用的
logs/mixinbooter.logMixin 日志。支持跟踪类加载,以便进行精确调试。 - 允许传统的
MixinConfig+MixinConnector清单属性条目完全参与整个生态系统 - 支持发现 Mixin 所属模组,并改进
isModLoaded检查 - 抑制 Forge 的损坏压缩包警告
- 逐步淘汰 Mixin“阶段”
开发者 ~ 开始使用:
- 添加 CleanroomMC 的仓库,并依赖 MixinBooter 的 Maven 条目:
repositories {
maven {
url 'https://maven.cleanroommc.com'
}
}
dependencies {
def mixin = 'zone.rong:mixinbooter:11.0'
implementation (mixin) {
transitive = false
}
annotationProcessor mixin
// RetroFuturaGradle for refmap generation:
modUtils.enableMixins(mixin)
// modUtils.enableMixins(mixin, 'mod_id.mixins.refmap.json') << add refmap name as 2nd arg (optional)
}
- 选择注册 Mixin 配置的方式。MixinBooter 支持多种注册方式:
(从 11.0 版本开始,不再区分早期/后期阶段,因此 IEarlyMixinLoaders/ILateMixinLoaders 已弃用)
MixinConfigs清单属性:无需加载器类。将你的 Mixin 配置名称以空格分隔的列表形式添加到 JAR 的清单中。MixinBooter 会直接从 JAR 清单中读取并注册它们。MixinConnector清单属性:以编程方式注册配置。将其指向一个实现了org.spongepowered.asm.mixin.connect.IMixinConnector的类。启动过程中会调用该类的connect(),届时你可以自行调用Mixins.addConfiguration(...)。
这两个清单属性都需要在你的 JAR 任务中设置:
jar {
manifest {
attributes(
'MixinConfigs': 'mixins.mymod.json',
'MixinConnector': 'com.example.mymod.MyMixinConnector'
)
}
}
public class MyMixinConnector implements IMixinConnector {
@Override
public void connect() {
// Check if mod is loaded before registering?
// Possible with zone.rong.mixinbooter.service.ModDiscoverer.isModPresent(String modId)
Mixins.addConfiguration("mixins.mymod.json");
}
}
评论
登录后评论和评分