HomeJavaModsMixinRuntime
ModsJava

MixinRuntime

by commonplace · on Modrinth

A minecraft mod to make mixins more powerful. It can make mixins can inject the classes that cannot be injected before and make mixinClasses can be…

⬇ Download on Modrinth

English

MixinRuntime

MixinRuntime is a NeoForge mod that enables dynamic injection of Mixin configurations at runtime, bypassing the standard Mixin library's requirement that configurations be defined during early game launch.

Features

How It Works

The mod operates through a multi-stage bootstrap process:

  1. Agent Loading: The MixinRuntimePlugin extracts an embedded MixinRuntimeAgent.jar and self-attaches it to the JVM using the Attach API, granting access to java.lang.instrument.Instrumentation.
  2. Environment Patching: Applies class transformers to modify ModuleClassLoader, class trackers, and the MixinProcessor itself to suppress errors during runtime injection.
  3. Mixin Configuration Injection: Uses MixinProcessorUtils to dynamically inject new IMixinConfig instances into the active Mixin processor's configuration lists.

Compatibility

This mod is a core prerequisite for VulkanModNeoForge and has currently only been tested for compatibility with that specific mod. Since MixinRuntime modifies internal classes within ModLauncher and ModLoader, compatibility with other mods is currently unknown and may cause conflicts.

简体中文

MixinRuntime

MixinRuntime 是一款 NeoForge 模组,为 Mixin 提供了在运行时动态直接引用和注入配置的能力,无需重启游戏。该模组附带大量工具类,已在 GitHub 开源。

它绕过了标准 Mixin 库要求在游戏启动早期定义配置的限制,通过 Java Instrumentation API 实现运行时动态注册新的 Mixin 配置,甚至能重转换已加载到内存中的类。

特性

工作原理

模组通过多阶段引导流程运行:

  1. Agent 加载MixinRuntimePlugin 提取内嵌的 MixinRuntimeAgent.jar,并使用 Attach API 将其自附加到 JVM,从而获得 java.lang.instrument.Instrumentation 的访问权限。
  2. 环境修补:应用类转换器修改 ModuleClassLoader、类追踪器以及 MixinProcessor 自身,抑制运行时注入期间的错误。
  3. Mixin 配置注入:利用 MixinProcessorUtils 将新的 IMixinConfig 实例动态注入到活跃的 Mixin 处理器的配置列表中。同时支持使用 MixinUtils.reapply(mixinClass) 来注入原本无法直接注入的类,例如 GL11

兼容性

该模组是正在制作的 VulkanModNeoForge 的核心前置模组之一,目前仅测试了与 VulkanModNeoForge 的兼容性。由于 MixinRuntime 修改了 ModLauncher 和 ModLoader 的内部类,与其他模组的兼容性目前未知,可能会引起冲突。

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more