Learn · concepts
纱线与莫杰地图: Minecraft 映射比较 (2026)
纱线与 Mojmap 对比:两款 Minecraft 地图制作工具集在命名、许可和工具上的区别,以及选择哪个工具集用于 Fabric 模组.
Yarn 与 Mojmap:有什么区别?
Yarn 是社区命名的、用于 Fabric 的开源地图,它包含描述性名称和完整的参数方法。Mojmap 是 Mojang 自己的官方命名,自 1.14.4 版本起发布于每个版本中。如果您想要一个免费、文档完善的命名方案,其中包含参数名称和 Javadoc,请选择 Yarn。如果您想要与 Mojang 自己的名称一致且永不偏离的名称,请选择 Mojmap。
选择的关键不在于哪个更好——两者都是正确的。关键在于您的项目应该遵循哪种命名约定,以及您构建在哪个生态系统中。
它们各自是什么
Yarn 是 FabricMC 维护的映射集。志愿者为 Minecraft 中混淆的类、字段和方法分配可读的名称,这些名称位于稳定的 Intermediary 层之上,因此可以在不破坏编译后的模组的情况下进行重命名。
Mojmap 是 Mojang 随每个版本一起发布的官方映射表,自 1.14.4 版本起。这些名称直接来自 Mojang 自己的源代码,因此与开发人员内部使用的名称一致。它取代了 MCP 和 Searge,成为针对现代版本的任何新项目的默认选择.
晦涩的名字
Minecraft 代码混淆发布:类名命名为 a.a.a,方法命名为 b、c、d.
那些纱线或 Mojmap 地图
每个映射集将 a.a.a 翻译为 EntityPlayer,b 翻译为 move,c 翻译为 attack.
你的模组使用一个或另一个
你编写的代码针对的是 Yarn 或 Mojmap 的名称,而不是混淆过的名称.
稳定的底层
中介(针对纱线)或混淆地图(针对 Mojmap)能使已编译的模组在重命名后保持兼容.
它们的不同之处
分歧的关键在于谁来选择名称以及许可证如何对待这些名称。Yarn 名称由社区选择,可以自由使用和分享。Mojmap 名称是 Mojang 的,许可证在历史上对编译时使用一直比较宽松,但在分发方面则更为谨慎。现代加载器可以为你处理这些问题。
| Yarn | Mojmap | |
|---|---|---|
| 命名者 | FabricMC 社区 | Mojang (官方) |
| 首次可用 | Fabric 时代 | 1.14.4 及更高版本 |
| 方法参数 | 命名并记录 | 经常缺失 |
| 许可 | 开放,可自由分享 | 编译时允许 |
| 底层稳定层 | 中间层 | 每个版本对应的混淆映射 |
| 最佳适用场景 | 想要文档的 Fabric 模组 | 匹配 Mojang 源代码的项目 |
当你想了解一个方法的作用而无需阅读反编译代码时,Yarn 表现出色。方法参数会被命名(实体、速度、伤害),并且通常带有 Javadoc。当你在交叉引用 Mojang 自己的源代码或与熟悉官方名称的开发者合作时,Mojmap 表现出色。
如何选择
如果你基于 Fabric 构建,并且想要描述性名称、命名方法参数和内联文档,请选择 Yarn。它是 Fabric 生态系统中长期存在的默认选择,并且大多数第三方模组都针对它.
如果你希望获得与 Mojang 官方源码匹配的名称,计划与使用其他加载器的开发者共享代码,或者目标是 1.21 或更高版本,其中官方映射是常见的基准,那么请选择 Mojmap。如果你正在学习 Mojang 官方的反编译源码,或者与多种加载器类型协同工作,Mojmap 能够让你保持一致。
许多 Fabric 项目现在都基于 Mojmap 构建,并在其基础上应用 Yarn 重映射,因此你并非总是需要选择其中之一。你的构建工具可以分层使用它们。
它们如何与其他映射关联
它们都处于更长的历史发展中。在 Mojang 发布映射之前,模组开发社区使用 MCP 和 Searge 反向工程混淆后的名称。从 1.14.4 开始,Mojmap 提供了官方命名,而 Yarn 则作为 Fabric 的开放替代方案,在 Intermediary 之上分层发展。Intermediary 层的作用是保持模组在映射重命名下的兼容性.
纱线与 Mojmap 的实践应用
如果你正在开始一个新的 Fabric 模组,并且没有特别偏好 Mojmap 的理由,那么 Yarn 是一个安全的选择。生态系统默认使用它,文档也针对它,社区维护的名称通常包含有用的描述。
如果你正在维护其他加载器依赖的库,或者与 Forge 模组开发者共享代码(他们通常更喜欢 Mojmap),那么使用 Mojmap 是合理的。官方名称是双方的共同点。
如果你不确定,就使用 Yarn。你总是可以在以后切换,并且已经存在迁移工具。映射本身只是一个细节;重要的是编写一个好的模组。
常见问题解答
两者都使用 Fabric。Yarn 默认是生态系统,并提供命名参数和文档,而 Mojmap 则匹配 Mojang 自己的命名。请根据团队偏好的命名方式和工具进行选择.
不,那些被混淆的名称看起来像 a.a.a。Mojmap 将它们映射到 Mojang 内部使用的可读名称,每个版本都会发布.
是的,某种程度上是这样。有些 Fabric 设置会基于 Mojmap 并应用 Yarn 重映射,因此它们在一个工具链中共存,而不是直接竞争.
自 1.14.4 版本起,两者均使 MCP 和 Searge 对于新项目过时。旧版 1.7 到 1.12 的项目仍然依赖 MCP 命名.