やあ、
PixLyzerというツールを書きました。 < 1.14.4
にはヤーンマッピングを使用し、 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
のようなものを意味します。
ありがとう
こんにちは、
小さなリマッパーを使用して、指定されたマッピングで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を使用していますが、このクラスの名前付きの名前はどこにもありません。 それは問題であり、まったくマップされないということではありません(ほとんどすべてのものがマップされます)
最も参考になるコメント
こんにちは、
小さなリマッパーを使用して、指定されたマッピングで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と使用するヤーンのバージョンをダウンロードさせてから、小さなリマッパーを呼び出すだけです。