UniMixins

# UniMixins UniMixins 是一个用于 Minecraft 1.7.10(部分支持 1.8.9~1.12.2)的 Mixin 加载器,旨在实现最大兼容性。它力求结合尽可能多的 Mixin 加载器的功能,其模块化特性使得在需要时与其他加载器共存成为可能。## 背景 存在许多用于 1.7.10 的 Mixin 加载器,每个加载器除了提供基本的

资源介绍

# UniMixins UniMixins 是一个用于 Minecraft 1.7.10(部分支持 1.8.9~1.12.2)的 Mixin 加载器,旨在实现最大兼容性。它力求结合尽可能多的 Mixin 加载器的功能,其模块化特性使得在需要时与其他加载器共存成为可能。## 背景 存在许多用于 1.7.10 的 Mixin 加载器,每个加载器除了提供基本的 Mixin 功能外,还提供一组不同的额外功能,我们称之为*“附加功能”*。由于这些加载器都是单体架构,由于不可避免的功能重叠,它们不能同时使用。为了避免这个问题,UniMixins 将每个功能作为单独的模块提供(但仍提供合并后的 jar 文件以方便使用)。## 对比表 以下是已知 Mixin 加载器功能集的对比表。注意:更详细的表格版本可在 (https://legacymoddingmc.github.io/wiki/comparison-of-1.7.10-mixin-loaders/) 查看。 ![](https://api.mozugongfang.com/image/99777c43dc184b9b84ff95d2f844f4d0_webp.png) * : 不执行任何操作。[(问题)](https://github.com/FalsePattern/GasStation/issues/15) * : 可作为独立模组使用。## 使用方法 下载 `-all` jar 文件,并将其放入你的 mods 目录。移除任何其他冲突的 Mixin 加载器(参考上述表格)。> **注意**:jar 文件的命名非常重要,必须按字母顺序排在前面,以避免与嵌入 Mixin 的模组发生 (https://github.com/tox1cozZ/mixin-booter-legacy/issues/1) 冲突。这就是为什么 jar 文件名以 `+` 字符开头的原因。如果你在使用重命名的 jar 文件时遇到问题,可能需要将其更改为 `!` 字符。> > 作为参考,以下是一些显著字符的排序顺序:`!` < `+` < `0` < `[` < `_` < `a` ### 高级用法 你也可以使用模块 jar 文件组装自己的模块组合。某些模块依赖于其他模块,请参阅**模块列表**部分。假设没有其他 Mixin 加载器存在,你通常需要以下模块:* **Mixin**(任意单个分支)* **Compat** 和 **Mixingasm**(可选但强烈建议)* 提供所需任何附加功能的模组如果缺少依赖项,游戏将会崩溃。这可以在配置中禁用。## 模块列表 所有模块都依赖于 Mixin 模块。请注意,依赖项不一定必须来自 UniMixins 模块,其他模组也可以用来提供它们。### 包含在 `all`-jar 中的模块 * **Mixin (UniMix)**:由 UniMixins 开发人员维护,基于 (https://github.com/FabricMC/Mixin)。* **SpongeMixins** [仅适用于1.7.10] :提供对 (https://github.com/GTNewHorizons/SpongeMixins) 额外内容的模拟。* **MixinBooterLegacy** [仅限 1.7.10] :提供对 (https://github.com/tox1cozZ/mixin-booter-legacy) 附加功能的模拟,以及重新定位的 MixinExtras。* **MixinExtras**:提供 (https://github.com/LlamaLad7/MixinExtras)。* **GasStation** [仅限 1.7.10] :提供 (https://github.com/FalsePattern/GasStation) 的附加功能模拟。* 依赖 SpongeMixins。* 依赖 MixinBooterLegacy。* 依赖 MixinExtras * **GTNHMixins** [仅限 1.7.10] :提供 (https://github.com/GTNewHorizons/GTNHMixins) 的附加功能模拟,以及重新定位的 MixinExtras。* 依赖 SpongeMixins。* **兼容**:各种兼容性调整:* 重映射模组中无效的 Mixin 类引用(特别是阴影 ASM)。* 在崩溃报告中添加有关 mixin 的信息。 [仅限 1.7.10] * **Mixingasm**:提高 Mixin 与 ASM 转换器的兼容性。### 可选 * **未来兼容** [仅限 1.8.9 及以上版本] :使许多模块可在 1.8.9+ 上使用。**在 1.8+ 上运行此模组所必需。**(Mixingasm 不需要。)### 非常可选这些不包含在发布版本中,它们主要用于测试目的。(注意:您一次只能使用一个 Mixin 模块。)* **Mixin (SpongePowered)**:提供 (https://github.com/SpongePowered/Mixin) 的 Mixin。* **Mixin (Fabric)**:提供 (https://github.com/FabricMC/Mixin) 的 Mixin。* **Mixin (GasMix)**:提供 (https://github.com/FalsePattern/GasMix) 的 Mixin。* **Mixin (GTNH)**:提供 (https://github.com/GTNewHorizons/SpongePoweredMixin) 的 Mixin。## 常见问题 ### 为什么需要另一个 mixin 加载器?你没见过那个 xkcd 漫画吗?在 UniMixins 创建之前,1.7.10 上的 Mixin 加载器存在严重的碎片化,不同的模组需要不同的不兼容加载器。这部分是由于开发者之间的冲突,部分是由于技术原因(加载器是以单体方式设计的,这容易引发不兼容)。这个项目没有这些问题。 ### 为什么你使用 Fabric 版的 Mixin?这不是一个 Forge 模组吗?Fabric 版的 Mixin 比上游版本维护得更活跃,并且包含一些额外的修复。Fabric 版的大部分更改并非仅适用于 Fabric。 ### “Extras”(附加组件)到底有什么作用? * SpongeMixins、Grimoire、MixinBooterLegacy、GasStation 和 GTNHMixins 提供了多种方法,让你可以混入非核心模组(non-coremods)的类中。(这是 Mixin 原生不支持的功能,因为 Mixin 的所有阶段都在 Forge 发现非核心模组并将它们添加到类路径之前发生。) - **MixinBooterLegacy**、**GasStation** 和 **GTNHMixins** 添加了一个“晚期(late)”mixin 阶段,该阶段在第一个模组构建事件分发之前立即触发。此时所有模组都已被发现。 - **SpongeMixins** 允许你通过文件名手动将模组提前添加到类路径中。这是一种古老且 hacky 的解决方案。 - 我们建议新模组使用 **GTNHMixins**,因为它是使用最广泛且维护最活跃的选项。 * **Mixingasm** 修复了(https://github.com/SpongePowered/Mixin/issues/309)导致某些 ASM 转换器因 Mixin 改变其调用方式而失效的问题。 * **MixinExtras** 添加了新的 Mixin 功能,允许模组编写侵入性更低的 mixins。 ### Mixin?mixin?SpongeMixins?SpongePowered?有什么区别? * (https://github.com/SpongePowered/Mixin):一个 Java 库,让你以流畅的方式转换 Java 类。 * (https://spongepowered.org/):创建 Mixin 的组织(他们还开发了一个名为 Sponge 的模组开发 API)。 * (https://github.com/SpongePowered/Mixin/wiki/Introduction-to-Mixins---Understanding-Mixin-Architecture#4-only-you-mixins-can-save-mankind):定义应应用于类的“更改”的特殊 Java 类。这些由 Mixin 应用。 * (https://github.com/TimeConqueror/SpongeMixins):由 TimeConqueror 创建的 Mixin 加载器,拥有一个非常通用的名称。 ## 许可证 UniMixins 采用 Unlicense 许可证授权,但部分模块除外。完整详情请参阅 (https://github.com/LegacyModdingMC/UniMixins/blob/master/LICENSE)。

在鱼乐云资源中心浏览该资源,登录后可一键安装到你的游戏服务器。

返回资源中心