今日の半分くらいをこれに費やしました。もう次の日になってます。
マイクラをやっている人ならほとんどがご存知「Minecraft Forge」
恐らく大体の人はModLoaderとして使っているハズ。
多くのMODが前提MODとして要求しています。
ModLoaderを使わないMODは直接クラスを書き換えるため他のMODとの競合が発生しやすい。そのためForgeなどのModLoaderが直接クラスを書き換えないでも改造を行える環境を作り、他のMODはその規格に合わせることで競合を防ぐのです。
大体の人ではない人はその規格のMODを作るために使う、です。
ForgeにはModLoader等のマイクラMODとしての機能の他にForge対応のMODを製作する為の環境を整える機能とかがあります。
ここからがタイトルの内容
Forgeは、元々JAVAの開発環境が整っている人なら一発でマイクラのMOD開発環境も整ってしまう素晴らしいものなのですが、なんと1.6.4用のForgeには穴があるのです。そこにハマりました。
しかも英語やら詳しくないジャンルやらで無駄にハマっていました。
その前にForge対応MOD開発環境を整える大筋
JAVAの環境を整える
↓
Forgeのソースコード(src)をダウンロードする
↓
それを解凍し、中の「install.cmd」を実行する(Windows以外は違うらしい)
↓
インストールが終わったら完了
↓
eclipseだったら「eclipse」フォルダをワークスペースにする(他は知らない)
こんな感じなのですが、1.6.4のForgeはインストールが上手くいきません。
eclipseでテストプレイをするとClassNotFoundException(確か)が出ます。
そしてnet.minecraft.launchwrapper\Launch.classのソースの添付がないとか言われます。
自分はしばらく気づかなかったのですが、インストール(install.cmd)の時点でDecompile Exceptionが出ています。
エラーの内容は
Download of minecraft_server.1.6.4.jar failed hash check, deleting abcf286a14f7aee82e8bf89270433509 ba3145656b1480122bd8759cecd7b7a1
現象をわかりやすく言えば1.6.4のサーバーファイルのアドレスが変わっててダウンロード出来なかった、そんなニュアンスです。
正しく言うと公式がサーバーファイルを更新した為ハッシュ値が変わっていたのでダウンロードしなかった、です。
やっと見つけた解決法が
「forge/fml」の中の「mc_versions.cfg」というファイルをメモ帳等で開き最後の方に書いてある
[1.6.4]
client_md5 = 2e5044f5359e82245551167a237f3167
server_md5 = ba3145656b1480122bd8759cecd7b7a1
mcp_ver = 8.11
mcp_url = http://mcp.ocean-labs.de/files/archive/mcp811.zip
mcp_md5 = 2d7a759309b5cc10ca29caa0b10f3bfc
の「server_md5 = ba3145656b1480122bd8759cecd7b7a1」を
「server_md5 = abcf286a14f7aee82e8bf89270433509」にしてインストール(install.cmd)をすればOKです。
他の情報もあるのでちゃんと1.6.4であるか、server_md5であるかを確認して書き直しましょう。