提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
6行目: 6行目:
 
1.6.1では多数の変更があったが、MODのエントリポイントとなる@Modアノテーションがついたクラスはあまり変わっていない。
 
1.6.1では多数の変更があったが、MODのエントリポイントとなる@Modアノテーションがついたクラスはあまり変わっていない。
  
1.6.1のForgeからはPreInitアノテーションや、Initアノテーションなどの使用が非推奨になり、@Mod.EventHandlerを代わりに使う。
+
1.6.1のForgeからはPreInitアノテーションや、Initアノテーションなどの使用が非推奨になり、@Mod.EventHandlerを変わりに使う。
  
  
15行目: 15行目:
 
package mods.sample;
 
package mods.sample;
  
import cpw.mods.fml.common.*;
+
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.*;
 
import cpw.mods.fml.common.Mod.*;
 
 
import cpw.mods.fml.common.network.NetworkMod;
 
import cpw.mods.fml.common.network.NetworkMod;
  
/**
+
 
* Sample Mod クラス.
+
@Mod(modid = "foo", version = "1.0.0", name = "sample")
*
 
* Modアノテーションをつけるだけで、Modクラスとして認識される。
 
* クラス名は自由に決めることができ、他のクラスを継承する必要もない。
 
* なお、Modアノテーションの必須項目は modid のみで、その他は外部ファイルから設定することができ、省略することも可能。
 
*
 
* また、NetworkMod は不要であれば省略してもよい。
 
*
 
*/
 
@Mod(modid = "sample-mod-id", name = "sample-mod-name")
 
 
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
 
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
 
public class ModSample {
 
public class ModSample {
  
    /**
 
    * 指定したIDのModのインスタンス.
 
    *
 
    * フィールド名、アクセス指定子はなんでもよい。不要であれば省略可能。
 
    * 自身のインスタンスがインジェクションされる。
 
    */
 
    @Instance("sample-mod-id")
 
    protected static ModSample instance;
 
  
    /**
 
    * サーバー、クライアントで異なる処理を行わせる場合に用いるプロキシークラス.
 
    *
 
    * フィールド名、はなんでもよい。不要であれば省略可能。(public以外のアクセス指定子が使えるかは不明)
 
    * 実行環境にあわせて、どちらかのインスタンスがインジェクションされる。
 
    */
 
    @SidedProxy(
 
        clientSide = "mods.sample.ClientProxy",
 
        serverSide = "mods.sample.ServerProxy")
 
    public static SampleProxy proxy;
 
  
    /**
+
 
    * 初期化前処理.
+
     @Mod.EventHandler
    *
 
    * メソッド名はなんでもよい。不要であれば省略可能。
 
    *
 
    * @param event
 
    *        FMLの初期化前処理イベント
 
    */
 
     @EventHandler
 
 
     public void preInit(FMLPreInitializationEvent event) {
 
     public void preInit(FMLPreInitializationEvent event) {
         // 初期化前処理
+
         //前処理
        // 設定ロードや GameRegistory への登録を行うタイミング
 
        // 追加Blockや追加Itemはこのタイミングで登録を行う
 
    }
 
 
 
    /**
 
    * 初期化処理.
 
    *
 
    * メソッド名はなんでもよい。不要であれば省略可能。
 
    *
 
    * @param event
 
    *        FMLの初期化処理イベント
 
    */
 
    @EventHandler
 
    public void init(FMLInitializationEvent event) {
 
        // 初期化処理
 
        // Modのセットアップや、他Modとの連携処理を行うタイミング
 
    }
 
 
 
    // その他のイベント
 
    // -----------------------------------------------------
 
 
 
    // ---------------------------------
 
    // client's events
 
    // ---------------------------------
 
 
 
    // 初期化後処理イベント
 
    @EventHandler
 
    public void postInit(FMLPostInitializationEvent event) {
 
    }
 
 
 
    // 署名問題イベント。PreInitイベントの前に発生
 
    @EventHandler
 
    public void fingerprintWarning(FMLFingerprintViolationEvent event) {
 
    }
 
 
 
    // IMCメッセージイベント。InitEventのあとに発生
 
    @EventHandler
 
    public void handleIMC(IMCEvent event) {
 
    }
 
 
 
    // ---------------------------------
 
    // Server's events
 
    // ---------------------------------
 
  
    @EventHandler
 
    public void handleServerAboutToStart(FMLServerAboutToStartEvent event) {
 
    }
 
  
    @EventHandler
 
    public void handleServerStarting(FMLServerStartingEvent event) {
 
 
     }
 
     }
  
    @EventHandler
 
    public void handleServerStarted(FMLServerStartedEvent event) {
 
    }
 
  
     @EventHandler
+
     @Mod.EventHandler
     public void handleServerStopping(FMLServerStoppingEvent event) {
+
     public void Init(FMLInitializationEvent event) {
    }
+
        //処理
  
    @EventHandler
 
    public void handleServerStopped(FMLServerStoppedEvent event) {
 
 
     }
 
     }
  
    // その他アノテーション
 
    // -----------------------------------------------------
 
 
    @Metadata
 
    protected static MetaData metadata;
 
 
    @InstanceFactory
 
    public static ModSample instance() {
 
        return new ModSample();
 
    }
 
 
}
 
}
  
 
</source>
 
</source>
  
基本的に、前処理で設定の読み込み、及び追加するBlock、Itemのインスタンス生成および登録を行い、初期化処理でそれ以外の初期化処理を行う。殆どのModでは、初期化前処理と初期化処理の2つだけで事足りると思われる。
+
基本的に変わったことはEventHandlerだけなのでそこまで苦戦することはないはずだが、もし躓くようなら1.5のチュートリアルも現時点では参考になるので参照してほしい。
 
 
なお、コンストラクターでは、自身の内部変更のみを行い、FMLや他Modへの干渉は行うべきではない。これは、インスタンスが生成されるタイミングでは、他Modのロードや生成が保証されていないためである。そのため、基本的にはコンストラクターは定義せず、デフォルトのコンストラクターが使用されるようにする方が良い。
 
 
 
  
  
基本的に変わったことは、既存のイベントハンドラ用のアノテーションが全て EventHandler に変わっただけである。
+
前処理の部分に自分のBlockクラスを継承したクラスのインスタンス生成&Item登録などを済ますこと。
そのため既存のMod作者は苦戦することはないはずだが、もし躓くようなら[[1.5以前のチュートリアル]]も現時点では参考になるので参照してほしい。
 

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)