Yarn: 自动生成命名罐子的方法

创建于 2021-04-02  ·  5评论  ·  资料来源: FabricMC/yarn

你好呀,
我写了一个名为PixLyzer的工具。 它使用 < 1.14.4的 yarn 映射和1.14.4 + 的 mojang 映射。 与原始映射相比,我更喜欢纱线映射。

我的问题是,我需要在我的脚本中集成命名的 jar 集成。 我没有时间为较新版本以及21w13a1.14.4之间的所有版本手动生成纱线罐。 我最后一次生成旧映射的尝试是检查1.14.4?并在此处更改 minecraft 版本: https://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L29。 旧版本与 gradle 不兼容和/或没有mapNamedJar

如何自动为旧版本自动生成映射? (我的意思是像gradle mapNamedJar 1.15.2

谢谢

discussion toolchain

最有用的评论

你好,

您可以使用 tiny remapper 重新映射具有给定映射的 jar。

您可以在此处找到下载: https ://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/(如果您想通过 cli 使用它,请使用 fat jar)
您可以在此处找到小格式的纱线: https ://maven.fabricmc.net/net/fabricmc/yarn/(无 v2 jar 或 gz 文件最适合旧游戏版本)

如果您希望直接在代码中调用 Tiny reampper 也有一个 API(只需通过 maven 将其拉入)。 您可以使用 mapNamedJar 作为示例: https ://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L1050

应该只是让你的工具下载我的世界和你想使用的纱线版本,然后调用微型重映射器。

所有5条评论

你好,

您可以使用 tiny remapper 重新映射具有给定映射的 jar。

您可以在此处找到下载: https ://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/(如果您想通过 cli 使用它,请使用 fat jar)
您可以在此处找到小格式的纱线: https ://maven.fabricmc.net/net/fabricmc/yarn/(无 v2 jar 或 gz 文件最适合旧游戏版本)

如果您希望直接在代码中调用 Tiny reampper 也有一个 API(只需通过 maven 将其拉入)。 您可以使用 mapNamedJar 作为示例: https ://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L1050

应该只是让你的工具下载我的世界和你想使用的纱线版本,然后调用微型重映射器。

@modmuss50感谢(超级快速)回答,我一定会尝试一下。 可悲的是,最后几天我没有时间回答。

你好呀,
有另一个问题。

(假设您使用版本21w13a并希望从官方映射到命名):

我可以使用微小的重映射器将offical映射到intermediary 。 这个没问题。 现在我想从intermediary映射到named 。 当我结帐21w13a并运行gradle mapNamedJar时,我在临时文件夹中看到一个名为merge-v2.tiny的文件。 当我使用这个文件并运行重新映射器时,一切都很好,我得到了我习惯的 jar。 当我使用来自 maven 的纱线映射时(无论如何,合并的,v2,...),我可以将大多数类映射到命名名称,但有些(例如net/minecraft/class_6171 )不是被重命名。 我检查了映射,并且在此类之后进行 grepping 时,我得到以下输出:

moritz@moritz-tp:~/yarn$ grep -r "net/minecraft/class_6171"
mappings/net/minecraft/unused/packageinfo/PackageInfo6171.mapping:CLASS net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171 
.gradle/temp/yarn-mappings-v2.tiny:c    net/minecraft/class_6171        net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/yarn-mappings.tiny:CLASS   net/minecraft/class_6171        net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/unmerged-named-v2-with-enum.tiny:c net/minecraft/class_6171        net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/merged-reordered-v2.tiny:c dlr     net/minecraft/class_6171        net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/merged-v2.tiny:c   net/minecraft/class_6171        dlr     net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/minecraft/21w13a-intermediary-inverted-v2.tiny:c        net/minecraft/class_6171        dlr
.gradle/minecraft/21w13a-intermediary.tiny:CLASS        dlr     net/minecraft/class_6171
.gradle/minecraft/21w13a-intermediary-v2.tiny:c dlr     net/minecraft/class_6171


moritz@moritz-tp:~/test$ grep -r "net/minecraft/class_6171"
Übereinstimmungen in Binärdatei intermediary.jar
Übereinstimmungen in Binärdatei yarn.jar
intermediary.tiny:c     dlr     net/minecraft/class_6171

因此没有可用的命名映射。 maven中的映射是不同的还是我做错了什么?

(好的小编辑:我使用了旧的小映射,但仍然:检查类net/minecraft/class_5348$1

v2 不包含中介名称,您需要从 maven 单独下载这些名称,然后合并映射或从官方 -> 中介 -> 命名。

我可以毫无问题地从官方映射到中介。 我使用来自 maven (https://maven.fabricmc.net/net/fabricmc/yarn/) 的 v2 或 v1,但没有一个来自此类的命名名称。 这就是问题所在,而不是它根本不会映射(几乎所有的都映射了)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

quat1024 picture quat1024  ·  6评论

Juuxel picture Juuxel  ·  6评论

liach picture liach  ·  4评论

copygirl picture copygirl  ·  6评论

Sollace picture Sollace  ·  5评论