spigot plugin制作備忘録
はじめに
忘れそうな事と忘れたらやばいこと書いておきます
毎度更新したり別記事書く予定です
コマンドの追加
①src/main/resources/plugin.ymlを開く
②一番下にcommands:
③改行してインデントを挿入してコマンド名(英語なら好きな名前でok)
④必要に応じてaliasesやdescriptionを書く
以下ではtestとmenuを実装している
//yml
name: TestPlugin
version: '${version}'
main: com.test_mc.testplugin.TestPlugin
api-version: '1.20'
prefix: TestPl
authors: [kutouten_jp]
commands:
test:
menu:
description: open GUI menu
⑤メインクラスと同じ階層にパッケージを作る(名前はCommandsとかにすると分かりやすい)
⑥パッケージ内にクラスを作成する。(名前は○○Commandとか)
⑦作成したクラス内に以下の通りに記述
//java
public class TestCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
}
}
⑧処理を書く
下の例では実行したプレイヤーのチャット欄に「Hello World」と送るもの
//java
public class TestCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
Player p = (Player) commandSender;
p.sendmessage("Hello World");
return true;
}
}
⑨メインクラスを開き、onEnableメソッド内に
this.getCommand("③で記入したコマンド名").setExecutor(new ⑥で書いた名前());
を記述する
//java
public final class TestPlugin extends JavaPlugin {
@Override
public void onEnable() {
this.getCommand("test").setExecutor(new TestCommand);
}
@Override
public void onDisable() {
}
}
イベント取得
①イベントを取得する用にクラスを作成。パッケージ分けしてもok
②以下の通りに記述。implements Listnereを追加するだけ。
//java
public class PlayerJoinListener implements Listener {
}
③取得したいイベント名を引数に置く。@EventHandlerを忘れずに
以下ではプレイヤーが参加した際のイベントを取得する
メソッド名は自由です
public class PlayerJoinListener implements Listener {
@EventHandler
public void PlayerJoin(PlayerJoinEvent e){
}
}
④処理を書く。
以下では参加したプレイヤーに対してメッセージを送ります
public class PlayerJoinListener implements Listener {
@EventHandler
public void PlayerJoin(PlayerJoinEvent e){
Player p = e.getPlayer();
e.setJoinMessage("おはよう世界");
}
}
⑤メインクラスに以下のことを記述
Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(),this);
//java
public final class TestPlugin extends JavaPlugin {
@Override
public void onEnable() {
this.getCommand("test").setExecutor(new TestCommand);
Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(),this);
}
@Override
public void onDisable() {
}
}
この記事が気に入ったらサポートをしてみませんか?