迁移映射
如果你 计划将模组更新到 26.1 或更高版本,则需要从 Yarn 迁移到 Mojang 映射。
有两种方式实现:你可以使用 Loom Gradle 插件 ,也可以使用 Ravel IntelliJ IDEA 插件。
Loom 通过 migrateMappings 任务提供半自动映射迁移,但不支持迁移用 Kotlin 编写的代码。
Ravel 是 IntelliJ IDEA 的一个插件,添加了一个用于迁移的 GUI 对话框。 与 Loom 不同的是,Ravel 还支持 Kotlin。 此外,由于 Ravel 使用 IDE 来处理更改,因此在处理更复杂的项目时,其性能可能优于 Loom。
INFO
Fabric API 使用 Ravel 将 Yarn 迁移到 Mojang 映射。 参见 Fabric API 代码库中的 PR #4690。
两种方法都不完美,你仍需检查结果并进行手动修复,尤其是在迁移 mixin 时。
映射发生了什么变化?
历史上,《Minecraft:Java 版》曾使用过混淆技术,这促成了混淆映射的开发,而 Fabric Loom 正是将混淆映射用于制作模组。 有两种选择:或是 Fabric 自带的 Yarn 映射,或是 Mojang 官方映射。
Mojang 最近发布了第一个未混淆的《Minecraft:Java 版》,Fabric 项目决定从该版本开始不再维护第三方映射。 如果你计划将模组更新到此版本,则需要在更新之前先迁移到 Mojang 的映射。
什么是映射?
《Minecraft:Java 版》从发布到 1.21.11 版本都进行了混淆处理,这意味着其代码中像 Creeper 这样易于理解的类名被替换成了像 brc 这样的乱码。 为了方便制作模组,Fabric Loom 使用了混淆映射:这些映射可以将混淆后的类名(例如 brc)转换回易于理解的名称(例如 CreeperEntity)。
作为一名经验丰富的 Fabric 开发者,你 会遇到以下三组主要名称:
- 中间映射:编译后的 Fabric 模组用于混淆版本的映射集;例如
brc可能变为class_1548。 中间映射的目的是在不同版本之间提供一组稳定的名称,因为混淆后的类名会随着 Minecraft 的每个新版本而改变。 这通常会使某个版本构建的模组可在其他版本上运行,只要游戏中受影响的部分没有发生太大变化就行。 - Yarn:Fabric 为开发者编写模组而开发的开源映射集。 大多数 Fabric 模组都使用 Yarn 映射,因为在 2025 年弃用之前,Yarn 映射是默认设置。 例如,
CreeperEntity就是一个 Yarn 映射。 - Mojang 映射:游戏官方的混淆映射,由 Mojang 于 2019 年发布,旨在帮助模组开发。 值得注意的是,Mojang 的混淆映射缺少参数名称和 Javadoc,因此一些用户还会在官方映射上叠加 Parchment。 例如,
Creeper就是一个 Mojang 映射。
Minecraft 26.1 没有进行混淆处理,并且包含参数名称,因此不需要任何混淆映射。


















