====== Java コードベースで Yarn マッピングの更新 ====== Loom を使用すると、 Java コードベースで使用されるマッピングを半自動で更新できます。 Yarn は頻繁に変更されるため、これはコードベースを最新の変更で最新の状態に保つための便利なツールです。 **注意:** この自動化されたプロセスは現在、Mixin またはリフレクションを処理しません。これらのインスタンスは手動で更新する必要があります。 ===== Loom 0.2.6 以降 ===== 1.16.5 から 1.17.1 に移行したいとします。 - [[https://fabricmc.net/versions.html|こちら]] から、移行先のバージョンを選択し、 "Mappings Migration" の下に Gradle コマンド(例:''gradlew migrateMappings %%--%%mappings %%"%%1.17.1+build.40%%"%%'')をコピーします。まだ ''gradle.properties'' または ''build.gradle'' を変更しないでください。 - Gradle プロジェクトのルートでコマンドを実行します。 - 移行されたソースは ''remappedSrc'' に表示されます。移行によって有効な移行コードが生成されたことを確認します。 - ソースを ''remappedSrc'' から元のフォルダーにコピーします。 万が一に備えて、元のソースをバックアップしておいてください。 - [[https://fabricmc.net/versions.html|最初のサイト]] の指示に従って、gradle.properties ファイルを更新します。 - IDE で Gradle プロジェクトを更新します。 - 古い可能性がある Mixin ターゲットを確認して更新します。 === 追加のカスタマイズ === * ''%%--%%input path/to/source'' を使用して、Java ファイルの取得元を指定します。デフォルト:''src/main/java'' * ''%%--%%output path/to/output'' でリマップされたソースを出力する場所を指定します。デフォルト:''remappedSrc''。ここで ''src/main/java'' を使用して、再マップされたクラスをコピーする必要がないようにすることができますが、バックアップがあることを確認してください。 * ''%%--%%mappings some_group:some_artifact:some_version:some_qualifier'' を使用して、マッピングを取得するカスタムの場所を指定します。デフォルト:''net.fabricmc:yarn::v2''。 ''net.minecraft:mappings:'' を使用して、公式の Mojang マッピングに移行します。 === 問題の報告 === Loom は [[https://github.com/CadixDev/Mercury|Mercury]] を使用して Java ソースコードをリマップします。 [[https://github.com/CadixDev/Mercury/issues|Issue Tracker〔課題管理〕]]、または彼らの通信チャネル(irc.esper.net #cadix)を通じて議論してください。 ===== Loom 0.2.2 から 0.2.5 まで ===== 一部組み立てが必要です。 - ターゲットマッピングのバージョンを把握します。たとえば、 "net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2" です。 - このバージョンのマッピングが作成されていることを確認してください。これは厄介な部分です。現時点では、build.gradle の"minecraft" フィールドと "mappings" フィールドを新しいバージョンに編集し、任意の Gradle コマンドを実行することが唯一の方法で("gradle build"は、クラッシュします)、その後に**フィールドを元に戻します**。 - 次に魔法のような奇術コマンドを実行します: ''%%gradle migrateMappings -PtargetMappingsArtifact="net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2" -PinputDir=src/main/java -PoutputDir=remappedSrc%%'' * "targetMappingsArtifact" は、ターゲットマッピングのバージョンを指します。このコマンドを実行するときは、build.gradle を Mod の現在のマッピングバージョンに設定する必要があります。 * "inputDir" は、Java ソースコードを含む入力ディレクトリです。 * "outputDir" は出力ディレクトリです。不足している場合は作成されます。 - 問題がなければ、リマップしたソース コードを入力ディレクトリにコピーします。 - 最善の結果を期待します。 //注意:ファイルが見つからないという問題が発生した場合は、フルパスを引用符で囲んで指定する必要がある場合があります。// これは、 Intermediary を大幅に壊したり、同様にばかげたことをしたりしていない限り、Minecraft のバージョン間でも機能するはずです(※ほとんどの場合)。