Skip to content

マッピング

資料

Neoforge - What are Mappings

SpongePowered - MCP

難読化とマッピング

Minecraft(Java版)のjarファイルは難読化されています。

難読化されたフィールド名、クラス名、メソッド名などは、そのままでは非常に読み解くのが困難です。

これらを開発者が理解できる名前に変換するための対応表をマッピングと呼びます。

マッピングの種類(Forge)

MCP (Mod Coder Pack)

古くから使われているコミュニティ主導のマッピングです。SRG名1(中間名)を経由する仕組みが特徴です。

Forge等は内部処理でSRG名を使用しているため、エラーログ等で見かけることがあります。

Official Mappings (Mojang Mappings)

Mojang公式のマッピングです。現在のMOD開発の主流ですが、引数名やローカル変数名までは復元されません。

Parchment

Official Mappingsを拡張し、引数名やローカル変数名を読みやすくしたマッピングです。

Official Mappingsと互換性があるため、開発の途中から導入しても基本的に問題ありません。

Parchmentの導入方法

  1. プロジェクト直下の settings.gradle に以下の maven リポジトリを追加します。
    settings.gradle
    pluginManagement {
        repositories {
    +       maven { url = 'https://maven.parchmentmc.org' }
        }
    }
    
  2. build.gradle でプラグインを適用します。

    build.gradle
    plugins {
        id 'net.minecraftforge.gradle' version '[6.0.16,6.2)'
    +   id 'org.parchmentmc.librarian.forgegradle' version '1.+'
    }
    

    Warning

    必ず net.minecraftforge.gradle の下に追加してください。

  3. マッピング設定を変更します。

    build.gradle
    minecraft {
    -    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バージョンを確認して設定してください。

  1. Gradleの更新 設定を変更したら、Gradleプロジェクトをリフレッシュ、もしくは同期してください。IDE上で変更が反映されるはずです。

  1. m_286052_f_90981_等の名前。