MinecraftのSpigotサーバー向けプラグインを作ってみる (2/2)

前回準備した環境で実際にプラグインを作っていきましょう!

今回はシンプルなものから紹介しますが、別の記事で複雑めなプラグインも紹介するつもりです😉

目次

必要なもの#

プログラミングの基礎知識(少し)

プロジェクト作成#

まずはプロジェクト作成からです。

Intellij IDEAを起動した最初の画面で、「Create New Project」を押します。

左側から「Minecraft」をクリックし、次に「Spigot Plugin」を選択。

③のProject SDKに、インストール済みのJDKが指定されていることを確認し、「NEXT」を押します。

GroupId」は自分の名前か組織名を、「ArtifactId」はプラグインの名前を入れ、「NEXT」。

①の「Plugin Name」にプラグイン名、②はプラグインを使用する予定のマイクラバージョン。

③は必要ではないけど、入れてもいいです。「Description」はプラグインの説明、「Author」は作者名。

入力完了後、「NEXT」。

最後にプロジェクトを保存するフォルダ名を決めます。基本的にはプラグイン名にしておけばわかりやすいと思います。

そして「FINISH」!

コード作成!#

初めてプラグインを作ったときには以下のような豆知識の画面が出てきます。今後出てこないようにしたかったらチェックボックスにチェックを入れ、CLOSEします。

ソフトが色々自動でファイルの準備などをしてくれるので少し待ちます。完了すると次のような画面に。

プラグイン制作では、赤枠内にコードを書いていきます!

コード解説#

中のコードはこうなっていますね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package joey.testplugin;

import org.bukkit.plugin.java.JavaPlugin;

public final class TestPlugin extends JavaPlugin {

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

}

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

最初の packageはパッケージ名です。先ほど設定したGroupIdArtifactIdになっていますね。

その下のimportは、このプログラムに必要な別のパッケージを使うよーと宣言しています。あまり気にしなくていいです。

さらにその下のpublic final class TestPlugin extends JavaPluginというのは、ここからがTestPluginというクラスで、このクラスはJavaPluginのクローンで同じ機能を持っている(見えないけど)という感じです。

クラスというのは、いろいろな処理を集めて書くところだと思ってください。

最初のpublic finalはおまじない程度に、これは必要とだけ考えておけばOKです。

というか、ここまでソフトが自動で作ってくれているので、無視でもOKです😅

次に、そのクラスの括弧内に2個パーツがありますね。

1
2
3
4
5
6
7
8
9
@Override
public void onEnable() {
// Plugin startup logic

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

まず、@から始まる部分はアノテーション(注釈)を表します。例えば@Overrideといのは、この関数は、クローンして見えないけどクローン元にもともとある関数を上書きするよーという宣言です。

あまり深く考えなくてOKです。😉

次に、「onEnable()」のような、()がついている文字が、いわゆる関数です。数学の関数とはちょっと違って、いろいろな処理をひとまとめにして、名前を付けた感じです。

例えば、「野菜を切る、炒める」というのをまとめて「野菜炒め作り」と名付けるみたいな。笑

()の中にはその処理に渡す「変数」を書きます。「野菜炒め作り」ではキャベツや豚肉でしょうか。笑

無ければ今回のように空白です。

その関数名の前にある、「public」はクラスの外からでも見える、「void」はこの関数には「戻り値」がないよ(処理の結果を返さない)ということです。もし「戻り値」があるときは、その値の「データ型」を書きます。わからなくても今はそう書くんだな、と覚えておけば大丈夫です👌

そして、{}で囲まれている部分に処理を書きます。ちなみにですが、//から始まっている分はメモ扱いとなり、処理として扱われずに無視されます。一般的には「コメントアウト」と呼ばれます。

つまり、プラグイン制作においての関数の書き方は以下の通りです!

1
2
3
4
@アノテーション
public 戻り値のデータ型 関数名(渡す変数) {
行う処理
}

処理を書いてみる#

さて、戻りますが、onEnableはプラグインが有効化されたとき、onDisableは無効化されたときに、

それがトリガーになって動作する処理を書く部分です。

例えば、次のようにgetLogger().info("テストプラグインが有効化されました!");をonEnableの中に書いてみましょう。

1
2
3
4
5
6
7
8
9
10
@Override
public void onEnable() {
// Plugin startup logic
getLogger().info("テストプラグインが有効化されました!");

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

ちなみにですが、コピペせずにタイプをしていると、以下のポップアップが出てくることがあります。

これはソフトがコードを予測して提案してくれています。

TabかEnterを押すと残りが自動で入力されてとても便利です!

書き終わったら、画面右上の緑の▶ボタンを押すと、コードがビルドされて、実際のプラグインファイル(jarファイル)を作ってくれます。

ボタンを押すとウィンドウの下部にずらーっとログのようなものが流れだします。

PCスペック、コードの長さによりビルド時間も異なりますが、数秒ほど待ちます。

上記画像のように、BUILD SUCCESと表示されればビルド成功です!

エラー(タイプミス、構造エラーなど)があればビルドが成功せず、何行目の何がおかしいか教えてくれるので修正します。

作成されたjarファイルは、「\インストーラー時に指定したプロジェクトフォルダ\target」内にあります。

この、「プラグイン名-バージョン.jar」が完成したプラグインです!

これをSpigotのpluginsフォルダに入れてサーバーを起動し、ログに「テストプラグインが有効化されました!」と出れば成功です!

まとめ#

今回はとてもシンプルなプラグインしか紹介しませんでしたが、基本的な流れは伝えられたかな、と思います。次の記事などでもっといろいろな処理ができるコードを紹介する予定ですのでお楽しみに!😊

わからなかったところや質問などあれば、TwitterやDiscordまでどうぞ😉