提供: Minecraft Modding Wiki
2012年3月14日 (水) 10:08時点におけるNagisawa (トーク | 投稿記録)による版
移動先: 案内検索

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/