マッピング¶
資料¶
難読化とマッピング¶
Minecraft(Java版)のjarファイルは難読化されています。
難読化されたフィールド名、クラス名、メソッド名などは、そのままでは非常に読み解くのが困難です。
これらを開発者が理解できる名前に変換するための対応表をマッピングと呼びます。
マッピングの種類(Forge)¶
MCP (Mod Coder Pack)¶
古くから使われているコミュニティ主導のマッピングです。SRG名1(中間名)を経由する仕組みが特徴です。
Forge等は内部処理でSRG名を使用しているため、エラーログ等で見かけることがあります。
Official Mappings (Mojang Mappings)¶
Mojang公式のマッピングです。現在のMOD開発の主流ですが、引数名やローカル変数名までは復元されません。
Parchment¶
Official Mappingsを拡張し、引数名やローカル変数名を読みやすくしたマッピングです。
Official Mappingsと互換性があるため、開発の途中から導入しても基本的に問題ありません。
Parchmentの導入方法¶
- プロジェクト直下の
settings.gradleに以下の maven リポジトリを追加します。 -
build.gradleでプラグインを適用します。build.gradleplugins { id 'net.minecraftforge.gradle' version '[6.0.16,6.2)' + id 'org.parchmentmc.librarian.forgegradle' version '1.+' }Warning
必ず
net.minecraftforge.gradleの下に追加してください。 -
マッピング設定を変更します。
build.gradleminecraft { - mappings channel: 'official', version: '1.20.1' + mappings channel: 'parchment', version: '2023.09.03-1.20.1' }mapping_channelなどと変数で指定されている場合は、gradle.propertiesから編集してください。
バージョンの指定について
上記は1.20.1の例(2023.09.03-1.20.1)です。
ParchmentMC 公式サイト や Mavenブラウザ で、使用しているMinecraftバージョンに対応するParchmentバージョンを確認して設定してください。
- Gradleの更新 設定を変更したら、Gradleプロジェクトをリフレッシュ、もしくは同期してください。IDE上で変更が反映されるはずです。
-
m_286052_やf_90981_等の名前。 ↩