てれるんぶろぐ

楽しく、簡単に、やりたいことを実現。

【改】Bukkit・Spigotプラグインを作る方法<準備編>

f:id:tererun:20210410124918p:plain

 こんにちはてれるんです。

 誰かさんに書けって言われた気がするので書きます。ハイ。
 今回は準備編です。他の編が見たい方はこちらのカテゴリからご覧ください。

 

 

 

 

総合開発環境、IDE

IDEとは

 まずIDEってなんぞやって方にご説明します

統合開発環境 - Wikipedia

統合開発環境IDE は、ソフトウェアの統合的な開発環境であり、様々なツールの集合からなる。(参照Wikipedia)

 天下のウィキペディアにはこんな事が書かれてます。そのままです。

 プラグインを作るのにJavaという言語を使って書くのですが(Kotlinなど他の言語はありますが今回は省略)その書くためのソフト、それがIDEです。

 今回は JetBrains社 が開発しているIDE、 IntelliJ を使用していきます。

 

IntelliJのインストール

 IntelliJはこちらからダウンロードします

www.jetbrains.com

f:id:tererun:20201015183500p:plain

こんなページ

 右上のダウンロードをクリックしましょう

f:id:tererun:20201015183641p:plain

ダウンロードページ

 右の「コミュニティ」のダウンロードをクリックしましょう。
 「Ultimate」と「コミュニティ」の違いですが、基本的に変わりはありません。学割を使うと無料で使えます。オヌヌメ。

f:id:tererun:20201015183941p:plain

ダウンロードしたファイル

 ダウンロードしたファイルを実行しましょう

f:id:tererun:20201015185603g:plain

インストール中

 インストールはこんな感じでやってください。パスとか変更したければしてどうぞ。途中のチェックは全部つけとけば問題ないです。変えたい場合はこれも変えてどうぞ。
 「Reboot now」に選択を入れると再起動されます。再起動しておきましょう。

 

IntelliJの初期設定

f:id:tererun:20201015185859p:plain

起動中

 再起動が終わってIntelliJを起動するとこのような画面の後ウィンドウが開きます

f:id:tererun:20201015191456g:plain

初期設定画面

 初めに設定をインポートするか聞かれるので「Do not import settings」を選択しましょう。次はテーマを選択します。好きな方を選択して後はすべて「Next」で大丈夫です。

f:id:tererun:20201015192328g:plain

プラグインインストール画面

 プラグインを作るためのプラグインを入れるために「Configure」を押して「Plugins」を押しましょう。
 新しいウィンドウが出てくるので、「Marketplace」タブの検索欄にMinecraftを検索してMinecraft Development」を選択して「Install」を押しましょう。サードパーティ製のプラグインを入れたときの警告が出ますが「Accept」をクリックしましょう。
 また、日本語化したい方はまた検索欄に「Japanese」と入力して「Japanese Language Pack EAPもインストールしましょう。
 インストールしたらIDEを再起動しましょう。

 

まずはプロジェクトを作成してみよう

f:id:tererun:20201015192900p:plain

起動したときのウィンドウ

 起動するとこんな画面になります。

View post on imgur.com

imgur.com

 プロジェクトを作成します。

 「新規プロジェクトの作成」からMinecraft」タブから作りたいプラグインのサーバークライアントを選択します。今回は「Spigot」を選択します。「Project SDK」は1.16以前だと1.8(Java8) 、1.17はJava 16、1.18はJava 17にしてください。それ以外の場合は無難なところとして1.8にしておきましょう。「Next」をクリックしてください。

 「GroupId」はプロジェクトを識別するIDです。他の物と被らないようにします。例として自分のドメインやメールアドレスを逆にしたものがあります。今回は「com.example.plugin.tutorial」にしておきます。

 「ArtifactId」はプロジェクト名になります。
 「Version」は好きな値にしてもらって結構です。「Next」をクリック。

 次の画面はプラグインの詳細、つまり「/help」コマンドを打った時や、前提プラグインの設定ができますが、今回は説明の「Description」と作成者の「Auhors」を入力しました。Minecraftのバージョンを変えたいときはここで変えてね。「Next」をクリック。

 次はファイル保存パスとファイル名を設定します。任意のものにしてください。「Finish」を押して完了。

 

起動確認用の簡単な処理を書いてみよう

f:id:tererun:20201015200438p:plain

作った後はこんな感じ

 まずはIDEの使い方から。

 左側のファイルの階層を見てみましょ。作ったプロジェクト名のものを展開すると色々出てきます。プログラムは「src/main/java」以下に書いていきます。今開いているファイル(右側のコードを書く画面)は先ほど指定した「GroupId」の下にある「TutorialPlugin」というクラスです。基本的にJavaはこのクラスと呼ばれるファイルにコードを書いていきます。「resources」の下にある「plugin.yml」は先ほど指定した「Description」やメインクラスのパスが書いてあります。

 右上の緑色の三角を押すことで「ビルド」と言って書いたコードをjarファイルに変換できます。

package com.example.plugin.tutorial.tutorialplugin;

import org.bukkit.plugin.java.JavaPlugin;

public final class TutorialPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("プラグインが開始しました");
}

@Override
public void onDisable() {
getLogger().info("プラグインが停止しました");
}
}

 メインクラスにこんな感じで書いてみました。

 クラスの括弧の中にメソッドという処理を書く括弧がありまして、その中にメッセージを表示するという処理が書かれてます。

 「onEnable」メソッドはプラグインが起動したときに読み込まれるメソッド、「onDisable」メソッドはプラグインが停止したときに読み込まれるメソッドです。

 「getLogger()」とすることで「Logger」クラスが取得できるので、「Logger」クラス内にある「info()」メソッドを呼び出してメッセージを出力しているという仕組みです。

 正直、書いているうちに学ぶうちになんとなくわかってきます。恐らく。

f:id:tererun:20201015201811p:plain

これ

 じゃあビルドしてみましょう。緑三角をクリックするとビルドできます。

f:id:tererun:20201015201837p:plain

完了したログ

 ビルドが完了するとこんな感じでお知らせしてくれます。終わったらプロジェクトを作った時に指定したパスのフォルダの中の「target」を開いてね

f:id:tererun:20201015201949p:plain

プロジェクトフォルダの中の「target」

 「target」を開くと、色々ファイルがありますが、「TutorialPlugin-1.0-SNAPSHOT.jar」がプラグインです。頭に「original-」ってついてるのは副産物だと思ってください。この「TutorialPlugin-1.0-SNAPSHOT.jar」をサーバーの「plugins」にぶち込んで起動すると...

f:id:tererun:20201015202417p:plain

これは!!

 ありました。動いてますね。ヤッタ~

 

 

 

最後に

 てな感じで取り敢えず準備編はここまでとさせて頂きます。

 基本的にプラグイン以外にもプログラミングは慣れれば簡単です。プログラミング言語によって色々考え方が違ったりしますがなんとなくこんな感じなんだなあっていうイメージをつかんでくれればうれしいです。

 Javaわからんよ~って方、多いと思います。頑張って慣れていきましょう。今はどっかに教えてもらいに行くよりもネットで教わることが出来る時代です。いろんなサービスや本がありますので、分かり易いなって思ったものを見つけてみてください。ちょっと慣れてきたら簡単なプラグインソースコードを見て構造を見てみるのもいいかも。

 次回からはガンガンJava書いていくので、ついていけなくなった方はTwitterとかでDMいただければできる限りでお答えします。今回の内容も含めてね。

 ではまた次回お会いしましょう。明日テスト、頑張ります。てれるんがお送りしましたー(*'▽')

 

 動画でご覧になりたい方はこちらからどうぞ

www.youtube.com

 

 

 

プライバシーポリシー お問い合わせ