提供: Minecraft Modding Wiki
この記事は"MinecraftForge3.3.7以降"を前提MODとしています。 |
目次
解説
このチュートリアルは、各種デバッグ用のテキストを、チャット欄に表示する方法を解説します。
Minecraft型の引数をもつメソッドの場合
- 例)BaseMod.onTickInGame メソッド
public boolean onTickInGame(float f, Minecraft minecraft) { }
例の onTickInGame のように引数にMinecraft型が含まれているメソッドの場合は、Minecraft型の引数を参照してテキストを表示できます。
minecraft.ingameGUI.addChatMessage("表示したいテキスト");
Minecraft型の引数を持たないメソッドの場合
Minecraft型の引数を持たないメソッド内でテキストを表示するには、先にMinecraft型のインスタンスを取得する必要があります。
- 必要ファイルのインポート
import net.minecraft.client.Minecraft; import cpw.mods.fml.common.FMLCommonHandler;
- クラス宣言の上部に上記の文を追加し、Minecraft.class と FMLCommonHandler.class をインポートします。
- インスタンスの取得
Minecraft minecraft = (Minecraft)FMLCommonHandler.instance().getMinecraftInstance();
- メッセージを表示したいメソッドで、Minecraft型のメンバ minecraft を宣言し、Minecraft型にキャストしたインスタンス取得します。
- テキストの表示
minecraft.ingameGUI.addChatMessage("表示したいテキスト");
- あとは引数を持つメソッドと同じように、minecraft のメソッドからテキストを表示できます。
デバッグ用ライブラリ
デバッグ作業を楽にするライブラリを置いておきます。
ソース全文
- DebugLibrary.java
package net.minecraft.src; import net.minecraft.client.Minecraft; import cpw.mods.fml.common.FMLCommonHandler; public class DebugLibrary { private static Minecraft minecraft; public DebugLibrary() { minecraft = (Minecraft)FMLCommonHandler.instance().getMinecraftInstance(); } public static Minecraft getMinecraft() { return minecraft; } public static void addChatMessage(String text) { minecraft.ingameGUI.addChatMessage(text); } }
使い方
開発中のMODと同じフォルダに置き、
DebugLibrary lib = new DebugLibrary();
- で、クラスを生成します。
lib.addChatMessage("表示したいテキスト");
- で、テキストを表示できます。
lib.getMinecraft();
- で、Minecraftを取得できます。
- メソッドの引数としてワールドなどが存在しない場合に、アクセスするために使えます。
デバッグ用の文を書く際のTips
通常、プログラムを組む際は、構造ごとに適切にインデントしていると思います。
しかし、デバッグ用の文までインデントしてしまうと、デバッグ終了時に見落としやすくなります。
そのため、デバッグ用の文だけは、あえてインデントせずに行頭から書くようにすると、見落としが少なくなります。