Yarn: 名前付きjarを生成する自動化された方法

作成日 2021年04月02日  ·  5コメント  ·  ソース: FabricMC/yarn

やあ、
PixLyzerというツールを書きました。 < 1.14.4にはヤーンマッピングを使用し、 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

最も参考になるコメント

こんにちは、

小さなリマッパーを使用して、指定されたマッピングでjarを再マップできます。

ここからダウンロードを見つけることができます: https ://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/(CLI経由で使用する場合はfat jarを使用してください)
ここで小さな形式のyarnを見つけることができます: 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

ツールにMinecraftと使用するヤーンのバージョンをダウンロードさせてから、小さなリマッパーを呼び出すだけです。

全てのコメント5件

こんにちは、

小さなリマッパーを使用して、指定されたマッピングでjarを再マップできます。

ここからダウンロードを見つけることができます: https ://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/(CLI経由で使用する場合はfat jarを使用してください)
ここで小さな形式のyarnを見つけることができます: 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

ツールにMinecraftと使用するヤーンのバージョンをダウンロードさせてから、小さなリマッパーを呼び出すだけです。

@ modmuss50 (超迅速な)答えをありがとう、私は間違いなくそれを試してみます。 悲しいことに、私は最後の数日間答える時間がありませんでした。

やあ、
別の質問があります。

(バージョン21w13aを使用していて、公式から名前付きにマップしたいとします):

小さなリマッパーを使用して、 officalからintermediaryにマップできます。 これで大丈夫です。 ここで、 intermediaryからnamedにマップします。 21w13aをチェックアウトして$# gradle mapNamedJarを実行すると、tempフォルダーにmerge-v2.tinyというファイルが表示されます。 このファイルを使用してリマッパーを実行すると、すべてが正常になり、慣れているjarファイルが取得されます。 Mavenからのヤーンマッピングを使用すると(マージされたもの、v2、...)、ほとんどのクラスを名前付きの名前にマッピングできますが、一部( net/minecraft/class_6171など)はそうではありません名前が変更されます。 マッピングを確認しました。このクラスの後でgrepを実行すると、次の出力が得られます。

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のマッピングは異なりますか、それとも何か間違ったことをしていますか?

Ty

(さて、小さな編集:古い小さなマッピングを使用しましたが、それでも:クラスnet/minecraft/class_5348$1を確認してください)

v2には中間名が含まれていません。それらをmavenから個別にダウンロードし、マッピングを組み合わせるか、公式->中間->名前付きから移動する必要があります。

公式から仲介者まで問題なくマッピングできます。 私はmaven(https://maven.fabricmc.net/net/fabricmc/yarn/)のv2またはv1を使用していますが、このクラスの名前付きの名前はどこにもありません。 それは問題であり、まったくマップされないということではありません(ほとんどすべてのものがマップされます)

このページは役に立ちましたか?
0 / 5 - 0 評価