初めに
今回の記事ではコマンドを作成します。
最初に作るコマンドは/debugと入力したら"こんにちは"と出るだけの物を作ります。
また、コマンドの作り方を軽く紹介したら入門編は終了です。
もっと込んだものが作りたい気持ちは分かりますが、
あと少しだけは我慢して練習していきましょう!
前 → 入門編 Part.3 イベントの作成
次 → 番外編 plugin.ymlの高度な編集
目次 → 目次と今後の展望
追記
少しでも最初で躓いてしまう人を減らすために、
分からないことを質問できるコミュニティを作成しました。
もし記事を読む中で躓く箇所があったら
このコミュニティへ質問しに来てください!
参加URL→ https://discord.gg/3NEN5s5gnG
手順の説明
コマンドの作成はplugin.ymlで登録
、コマンドの処理のファイルの作成
、
プラグイン起動時に有効化
の3ステップで行われます。
この3つはコマンドを増やす度に使用するので覚えておきましょう。
一つでも欠けるとちゃんとコマンドが動きません。
plugin.yml の編集
まずはコマンドをplugin.yml
というファイルに登録します。
一番上のフォルダ
→src
→main
→resources
の中のplugin.yml
を開きます。
name: TutorialPlugin
version: '${version}'
main: com.github.tooooowa.tutorialplugin.TutorialPlugin
api-version: '1.20'
私の環境では上のように設定されています。
この中でname
はプラグインの名前、main
はメインクラスの場所なので
この2つは環境によって異なると思います。
api-version
もプラグインのAPIのバージョンなので環境によって異なります。
このファイルの下に新たにコマンドのためのコードを記述します。
name: TutorialPlugin
version: '${version}'
main: com.github.tooooowa.tutorialplugin.TutorialPlugin
api-version: '1.20'
commands:
debug:
usage: "/debug"
description: "デバッグ用のコマンドです"
commands
の中のdebug
の部分がコマンドの名前になります。
usage
はコマンドの使い方、description
はコマンドの説明です。
usage
とdescription
の2つは特にルールがないので自由に決めて大丈夫です。
コマンド処理のファイルを作成
メインクラスと同じ階層に新しくDebugCommand
という名前でオブジェクトを作成します。
オブジェクトの作成方法は前回の記事で紹介したので詳しくはそちらをご覧ください。
ファイル中には一旦以下のように記述します。
(自動で記述される部分はそのままで、5行目の: CommandExecutor
だけ追記します)
package com.github.tooooowa.tutorialplugin //環境によって異なります
import org.bukkit.command.CommandExecutor
object DebugCommand: CommandExecutor {
}
するとobject DebugPluginの部分が赤く下線で表示されます。
その後、赤下線部の文字にカーソルを合わせて画像のような表示が出たら
メンバーの実装
をクリックします。
出ない場合は赤線部を一度左クリックしてから再度カーソルを合わせてください
すると以下のように自動で入力されます。
このonCommand(~){ }
の{}
の中が、コマンドが打たれたときに呼び出される場所です。
なので、このTODO
の行を削除して処理を書きます。
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
TODO("Not yet implemented")
}
今回は実行時にこんにちは
と返信させたいので、
サーバーからプレイヤーにメッセージを送る関数を使用します。
基本的にプレイヤーに何かを実行する時はプレイヤー.~
の形で書きます。
この自動入力で書かれた文では、実行者をsender
として保存してあるため、
sender.sendMessage("こんにちは")
と書きます。
[送る先].sendMessage("内容")
でメッセージを送ること出来ます。
このような関数は沢山あって覚えるのは大変ですが、
最初は調べながらたくさん触れて覚えていきましょう。
今度ここで使用できる関数一覧を作成する予定です。
その後、コマンドの終了の目印でreturn true
と次の行に記述して終わりです。
package com.github.tooooowa.tutorialplugin
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
object DebugCommand: CommandExecutor {
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
sender.sendMessage("こんにちは")
return true
}
}
プラグイン起動時の有効化処理を追加
最後にplugin.yml
とDebugPlugin.kt
をプラグイン起動時に連携させる処理を追加します。
メインクラスのonEnableに追記します。
package com.github.tooooowa.tutorialplugin
import org.bukkit.plugin.java.JavaPlugin
class TutorialPlugin : JavaPlugin() {
override fun onEnable() {
// Plugin startup logic
server.pluginManager.registerEvents(EventListener, this)
getCommand("debug")?.setExecutor(DebugCommand)
}
override fun onDisable() {
// Plugin shutdown logic
}
}
追加したのは一行だけです。getCommand("debug")?.setExecutor(DebugCommand)
このdebug
がplugin.yml
の登録名でDebugCommand
が作成したオブジェクト名です。
これが出来たらビルドしてみましょう。
サーバーに実装
プラグインをビルドし、サーバーに導入します。
ビルドの仕方を忘れてしまっていたら前々回をご覧ください。
サーバーを起動してから/debug
を実行して
画像のようにメッセージが帰ってきたら成功です。
終わりに
お疲れ様でした。
これにて入門編は完全に終了です。
次回は、中級編の前に番外編として
今回使用した plugin.yml
について詳しく解説していこうと思います。
初級編の5記事、最後まで読んでいただきありがとうございました。
前 → 入門編 Part.3 イベントの作成
次 → 番外編 plugin.ymlの高度な編集
目次 → 目次と今後の展望