Spigotプラグイン開発③ ~ コマンド編

2022年3月3日Spigotプラグイン開発プラグイン開発

前回の続きです。今回はコマンドの登録から実行までをします。

広告

コマンドの登録

コマンドを登録するにはplugin.ymlというファイルに書き込みます。

plugin.ymlにはプラグインの説明などのプラグインの情報を書き込むファイルです。

左のメニューからsrc\main\resources\plugin.ymlの順にクリック

name: Kariproject
version: '${project.version}'
main: com.mcspigot.kariproject.Kariproject
api-version: 1.18

最初は上のようになっているはずです。この下に以下の内容を追加します。

commands:
  test:
    description: escription
    permission: testplugin.command.test

commands: の下にコマンドを書きます。そのままコマンドの名前になります。

test: の場合 /test で機能します。

descriptionはコマンドの説明

permissionはパーミッション設定しなければ全員が使えるコマンドになります。設定するとOPと権限を持っている人だけがこのコマンドをつかえるようになります。

コマンドの実行

メインクラスに戻ります。

public final class Kariproject extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

    }
}

onCommandの部分を追加してください。

senderはコマンド送信者(コマンドブロックなども含む)
commandはコマンド本体(コマンドの名前やコマンドの説明)
argsは /test 1 2 3 の1,2,3のような引数です。

oncommandの中にコマンドの処理を追加していきます。

@Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        //コマンドの名前がtestであるかを確かめる
        if (command.getName().equalsIgnoreCase("test")) {
            //testコマンドの処理
            //コマンドの送信者にメッセージを送信
            sender.sendMessage("send test");
        }
        //コマンドが存在しない場合はfalseを返す
        return false;
    }

コマンドの処理がついかできたら。前回と同じようにビルドしてサーバーに入れて

/testを実行してみると設定した文字が返ってくるはずです。

引数のargを使えば色々拡張できると思います。

以上でコマンドの登録から実行までです。次回はイベントについて紹介したいと思います。

今回のコード

public final class Kariproject extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        //コマンドの名前がtestであるかを確かめる
        if (command.getName().equalsIgnoreCase("test")) {
            //testコマンドの処理
            //コマンドの送信者にメッセージを送信
            sender.sendMessage("send test");
        }
        //コマンドが存在しない場合はfalseを返す
        return false;
    }
}

広告

2022年3月3日Spigotプラグイン開発プラグイン開発

Posted by mcspigot