提供: Minecraft Modding Wiki
2012年12月27日 (木) 18:52時点におけるMozipi (トーク | 投稿記録)による版 (とりあえず追加。説明が下手+自分のmodを改変しただけなのでへんなところが多いです)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"Minecraft Forge6.5.x"を前提MODとしています。



コマンドの追加

コマンドはチャットで入力されたものを受け取ってなんらかの動作をするものである。 ここでは、メソッドの説明と追加のみを行います。


ソースコード

CommandTutrial.java

package commandTutrial;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkMod;

@Mod(modid = "CommandTutrial", name="CommandTutrial", version="MC1.4.6 Universal")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class CommandTutrial {

	@Mod.Instance("CommandTutrial")
	public static CommandTutrial instance;

	@Mod.ServerStarting
	public void serverStarting(FMLServerStartingEvent event){
		event.registerServerCommand(new CommandDeleteAll());
	}

}

CommandDeleteAll.java

package commandTutrial;

import java.util.Iterator;
import java.util.List;

import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;

public class CommandDeleteAll extends CommandBase {

	@Override
	public String getCommandName() {
		return "delAll";
	}

	@Override
	public void processCommand(ICommandSender var1, String[] var2) {

	}

}


解説

@Mod.ServerStarting
	public void serverStarting(FMLServerStartingEvent event){
		event.registerServerCommand(new CommandDeleteAll());
	}

コマンドの追加はevent.registerServerCommand(ICommand);で行います。
ここでは、CommandDeleteAllを登録したいのでevent.registerServerCommand(new CommandDeleteAll());とします。

@Override
	public String getCommandName() {
		return "delAll";
	}

戻り値にコマンドの名前を設定します。

@Override
	public void processCommand(ICommandSender var1, String[] var2) {

	}

ここで、コマンドが入力されたときの処理を書きます。
引数var2は
/command [0] [1]...
の0と1...の配列になります。