ModLoaderMPとは、マインクラフトのSMP(マルチのこと)に対応させるためのMOD作成・導入補助用のMODです。
基本は、ModLoaderに付随して+α機能が付いていると認識されたほうがいいかもしれません。
前提Modの導入方法は割愛します。
※前提としてModLodaerとMCPの利用が可能なこととします。
環境構築
1.MCPフォルダの「Jar」フォルダにminecraft_sever.jarをコピーする。
2.minecraft_server.jarにModLoaderMP(Server版)を導入する。
3.同「Jar」フォルダにクライアント側の「bin」「resources」フォルダをコピーする。
4.のクライアント側のminecraft.jarには必ずクライアント用ModLoader、ModLoaderMPを導入しておきます。
MCPでの操作
1.MCPの「decompile.bat」を動かす。
2.エラーがでますが気にしない。
3.エラーがでている部分を修正します。
ソースフォルダの/minecraft_server/net/minecraft/serverのMinecraftServer.javaを編集します。
Ver1.2.3の場合:515行目から551行目をコメントアウト
Ver1.1の場合:400~431行目をコメントアウト
Ver1.01の場合:406~437行目をコメントアウト
Ver1.8.1の場合:344~375行目をコメントアウト
末尾に
}
を入れる。
実際のソースの変更部分
共通
1.worldObj使用時にMCPのMappingデータよります。
対象項目としては
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/