ModLoaderMPとは、マインクラフトのSMP(マルチのこと)に対応させるためのMOD作成・導入補助用のMODです。
基本は、ModLoaderに付随して+α機能が付いていると認識されたほうがいいかもしれません。
※前提としてModLodaerとMCPの利用が可能なこととします。
Step1
MCPフォルダの「Jar」フォルダにminecraft_sever.jarをコピー
minecraft_server.jarにModLoaderMP(Server版)を導入します。
また、同「Jar」フォルダにクライアント側の「bin」「resources」フォルダをコピーしておきます。
このクライアント側のminecraft.jarには必ずクライアント用ModLoader、ModLoaderMPを導入しておきます。
Step2
ここまで出来たらMCPの「decompile.bat」を動かしましょう。
エラーがでますが気にしない。
このままではリコンパイルする際にエラーを吐き出すので、以下/minecraft_server/net/minecraft/serverの
MinecraftServer.javaソースを編集します。
Ver1.2.3
515行目から551行目までをコメントアウトの後
}<br />
を追加
Ver1.1の場合 400~431行目をコメントアウト
Ver1.01の場合 406~437行目をコメントアウト
Ver1.8.1の場合 344~375行目をコメントアウト
他バージョンでも
}
を入れるのを忘れないように。
Step3
①共通
Entity系コンテンツで、worldObjを呼び出している場合
MCPのバージョンとか、CSVファイルによりますがエラーが出ている可能性があります。
対象項目としては
world.isRemote ←この部分(1.2.3時点では共通項目です)
古いデータの場合以下のように直します。
world.multiplayerWorld //ClientSide world.singleplayerWorld //ServerSide
また、ModLoaderを継承参照している定義ModLoaderMpに修正します。
public class mod_*** extends BaseMod
これを
public class mod_*** extends BaseModMp
に修正する。
②アイテムを追加する場合
基本はmod_***に定義されているはずですが、loadメソッド内に以下も付け加えます。
Client側:
ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID);
Server側:
ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); ModLoaderMp.registerEntityTracker(Entity***.class, 160, 5);
※netIDは0~256の中で指定すること。
②Guiを追加してる場合
③Modを追加する場合
Step4
まず、Server側にModel,Render系のclassは必要ありません。
描画するわけじゃないので
また、ModLoader.addNameやAddRenderも必要ありません。表示させるわけじゃないですので。
ここまで出来て文法エラーがない場合、リコンパイルして実行してみましょう。
あとは調整するのみです。
参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/