Bukkit標準のコマンド実装
このページでは、Bukkit標準のコマンドの実装方法について説明します。
注記
なお、この実装方法については冗長な記述が多いため、実際のプラグイン開発では、コマンドの実装に関するフレームワークを使用することが推奨されます。
CommandExecutorを実装する
CommandExecutorインターフェースを実装することで、コマンドの処理を実装できます。 ここが、コマンドが送られたときに呼び出されるメソッドです。
package party.morino.resources.plugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class MyCommandExecutor implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("mycommand")) {
sender.sendMessage("Hello, world!");
return true;
}
return false;
}
}
onCommandメソッドの引数は以下の通りです。
- sender: コマンドを実行したプレイヤー
- command: 実行されたコマンド
- label: コマンドのエイリアス
- args: コマンドの引数
メインクラスにCommandExecutorを登錨する
CommandExecutorを作成するだけでは、コマンドが実行されることはありません。 コマンドを実行するためには、プラグインのメインクラスでCommandExecutorを登錨する必要があります。 登録することによって、コマンドが実行されたときにCommandExecutorのonCommandメソッドが呼び出されます。
package party.morino.resources.plugin;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
getCommand("mycommand").setExecutor(new MyCommandExecutor());
}
}
plugin.ymlを作成する
また、個のプラグインはこのようなコマンドを持っていることをBukkitに伝えるために、plugin.ymlファイルを作成する必要があります。
src/main/resources/plugin.yml
name: MyPlugin
main: party.morino.resources.plugin.MyPlugin
version: 1.0
commands:
mycommand:
description: Hello, world!
この方法が、Buikkt標準のコマンドの実装方法です。 しかし、この方法は冗長な記述が多いため、実際のプラグイン開発では、コマンドの実装に関するフレームワークを使用することが推奨されます。 そこで、コマンドフレームワークを使うと簡単にコマンドを作成できる。