dwgx@blog:~$dwgx
> cd ../posts

Example-Wasted1 ゼロから Fabric mod のツールチェーンを通す

// created

Example-Wasted1 は Fabric mod の練習用プロジェクトで、目的はただ一つ、Minecraft の modloader・mapping・ビルドというツールチェーン一式を、ゼロから最後まで通しで動かすことだ。名前とあの description の一文は適当に付けたプレースホルダーなので真に受けないでほしい、コードが本題だ。

Minecraft の Java エコシステムはずっと一度きちんと触っておきたかった。mod のロジック自体を書くのは難しくない、難しいのは環境とツールチェーンのほうだ。チュートリアルを眺めているだけでは意味がないので、空のプロジェクトを立てて example mod のテンプレートから順に踏み抜いていったほうがいい。

プロジェクトは標準的な Gradle 構成で、純 Java。ディレクトリは Fabric の慣習に従って二つに分けてある。src/main に両サイド共通のロジックを置き、src/client にクライアントでしか動かないコードを置く。パッケージ名はテンプレートのデフォルト com.example.mod のまま、変えていない。

一番手こずったのは環境だ。gradle.properties に Minecraft、Yarn mapping、loader、API のバージョンが固定されていて、どれか一つでも噛み合わないと genSources がそのままエラーになる。最初の依存取得は話にならないほど遅く、ミラーを設定してようやくスムーズになった。クライアントとサーバーの境界も先に整理しておく必要がある、クライアント専用の呼び出しを common に突っ込むと、サーバーに載せた途端にクラッシュする。

全体としては下書きのプロジェクトだ。踏むべき落とし穴を踏み終えて感触をつかんだら、アーカイブして目印として残しておく。この一式は確かにゼロから一度通した、という記録として。