你好呀,
我写了一个名为PixLyzer的工具。 它使用 < 1.14.4
的 yarn 映射和1.14.4
+ 的 mojang 映射。 与原始映射相比,我更喜欢纱线映射。
我的问题是,我需要在我的脚本中集成命名的 jar 集成。 我没有时间为较新版本以及21w13a
和1.14.4
之间的所有版本手动生成纱线罐。 我最后一次生成旧映射的尝试是检查1.14.4?
并在此处更改 minecraft 版本: https://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L29。 旧版本与 gradle 不兼容和/或没有mapNamedJar
如何自动为旧版本自动生成映射? (我的意思是像gradle mapNamedJar 1.15.2
。
谢谢
你好,
您可以使用 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,但没有一个来自此类的命名名称。 这就是问题所在,而不是它根本不会映射(几乎所有的都映射了)
最有用的评论
你好,
您可以使用 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
应该只是让你的工具下载我的世界和你想使用的纱线版本,然后调用微型重映射器。