MixinRuntime
一个能使Mixin更强大的Minecraft模组。 它可以让Mixin注入之前无法注入的类,并让Mixin类可以直接使用。
MixinRuntime
MixinRuntime 是一款 NeoForge 模组,可绕过标准 Mixin 库要求在游戏启动早期定义配置的限制,在运行时动态注入 Mixin 配置。
特性
- 运行时 Mixin 注入:利用 Java Instrumentation API,无需重启游戏即可动态注册新的 Mixin 配置,甚至能重转换已加载到内存中的类。
- 内部类修改:对核心平台类进行补丁,包括
MixinProcessor、ModuleClassLoader、ModLauncher和ClassTracker,以支持运行时注入能力。 - 实用工具类:提供丰富的工具类用于与 Mixin 内部交互,包括
MixinAgentUtils、MixinTransformerUtils、MixinProcessorUtils和MixinConfigUtils,通过反射访问 Mixin 内部结构。 - 模块系统绕过:利用
ModuleUtils打开所有模块进行深度反射访问,从而绕过 Java 平台模块系统 (JPMS) 的限制。
工作原理
模组通过多阶段引导流程运行:
- Agent 加载:
MixinRuntimePlugin提取内嵌的MixinRuntimeAgent.jar,并使用 Attach API 将其自附加到 JVM,从而获得java.lang.instrument.Instrumentation的访问权限。 - 环境修补:应用类转换器修改
ModuleClassLoader、类追踪器以及MixinProcessor自身,抑制运行时注入期间的错误。 - Mixin 配置注入:利用
MixinProcessorUtils将新的IMixinConfig实例动态注入到活跃的 Mixin 处理器的配置列表中。
兼容性
- Minecraft 版本:1.20.1,1.21 和 1.21.10
- 许可证:MIT
该模组是 VulkanModNeoForge 的核心前置模组,目前仅测试了与 VulkanModNeoForge 的兼容性。由于 MixinRuntime 修改了 ModLauncher 和 ModLoader 的内部类,与其他模组的兼容性目前未知,可能会引起冲突。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。