最速で作るKotlin Minecraft Plugin開発 A-2 環境構築

# 概要
1. プラグインの作成
2. Kotlinプロジェクト変換
3. Paperサーバー準備 + 必要最低限のプラグインを準備
4. 更新スクリプトの作成
5. 結


# プラグインの作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/f92d8771-9d94-19d6-ddd9-7e3396a28c84.png)

---

場所: 作ったプラグインをどこかデスクトップなどでまとめて置けるように、分かりやすいところに置きましょう。
Main Classがcom.github.<あなたのID>で始まっていることを確認してください。
Group IDがcom.github.<あなたのID>であることを確認してください。


| **Minecraft Version** | **JDK Version** |
|:-:|:--|
| 1.12 ~ 1.16.5 |  8(11も可) | 
| 1.17 ~ 1.17.1 |  16 | 
| 1.18 ~ 1.20.4 |  Java 17 | 
| 1.20.5 ~ | Java 21 |


JDKがインストールされてない場合 JDK > JDKをダウンロード > バージョン「上記」 > ベンダー「Amazon Corretto、JetBrains Runtime、Oracle JDKあたりを選んでおけばよいです」

可能であればサーバーは常にLTSの最新版で動かし、プラグインもそれに合わせる形が良いので、21でそろえるのが望ましいのですが、今回の所は確実に動くことを最優先として上記のバージョン表に従ってください。
後々JDKバージョンが分かってきたら最新のものを選んでもよいと思います。

[Javaのバージョンに関する詳細](https://docs.mcserversoft.com/advanced/java-version)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/ad576524-a45f-708c-ff5f-aa0005c73138.png)

# Kotlinプロジェクト変換

src > main > java > GroupId.ArtifactId > <メインクラス> (この場合はExamplePlugin)
メインクラスを右クリックし、「JavaファイルをKotlinファイルに変換」

OK、プロジェクトでKotlinを構成します > OK

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/b7b34999-7e50-10e2-8261-03309a02d9ce.png)

---

gradle.buildが開かれ、画像の記述が追加されたことを確認し、右上のGradleアイコンをクリック(またはCtrl + Shift + O)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/7cc24106-1bc4-e969-b69a-3413913652a9.png)

```gradle
plugins {

    id "com.github.johnrengelman.shadow" version "8.1.1"

}
```

plugins内に「id "com.github.johnrengelman.shadow" version "バージョン"」を追記
https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow
上記のサイトから最新バージョンを入力してください(執筆時は8.1.1)

再び右上のGradleアイコンをクリック(またはCtrl + Shift + O)

再び「JavaファイルをKotlinファイルに変換」をクリックしてください。

---

src > main > java > 右クリック > リファクタリング > 名前の変更
java -> kotlinに名前を変更してください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/4d376402-9106-396b-c8fb-56b4be63d0ca.png)

---

最終的にこうなれば完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/dff573a7-fa2b-e826-ac09-883a52547aa7.png)

# Paperサーバーの準備 + 必要最低限のプラグインを準備

### Paper サーバーを準備してください

サーバーの建て方が分からない際は[揚げたてのポテトさんの記事](https://agepote.jp/mcserver/pluginserver)が分かりやすく、オススメです。

ポート開放のステップはスキップしていただいて構いません。

### 必要最低限のプラグインを準備

下記二つのプラグインをpluginsフォルダーに入れ、導入してください

- [PlugManX](https://www.spigotmc.org/resources/plugmanx.88135/)
- [EssentialsX](https://www.spigotmc.org/resources/essentialsx.9089/)

# 更新スクリプトの作成

### デフォルトのターミナルをGit Bashに変更

設定を開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/d1aecb74-c3f6-5103-66fe-70a62a713355.png)

---

「ターミナル」で設定内を検索 > シェルパス > bash.exeで終わっているものを選択します
Windowsの方はデフォルトであれば画像通りに
Macの方は「/bin/bash」になるかなと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/df028b9d-1637-35ba-1684-c90691c339bb.png)

---

右上のほうの実行ボタン左のドロップダウンメニュー > 実行構成の編集

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/92b34ced-f3c0-0461-77f2-eff8e0ed2204.png)

---

+ > Gradle

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/ee4a4e3b-b0dd-5a98-28fe-faf2cf210e26.png)

---

RunにshadowJarを入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/236fb262-b50f-3234-b3ba-f4d7ee967d01.png)

---

一度戻り
プロジェクト名 > 右クリック > 新規 > ファイル > replace.sh

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/38911eee-ba6e-36f4-500a-ca3f9b4baccc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/f98a3457-a484-f1aa-0149-9fc6e6e080e0.png)

---

shadowJarを一度実行

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/04328d2f-a75b-37f7-37e2-00521cdba5b2.png)

---

-all.jarで終わるjarファイルが作成されていることを確認し、絶対パスのコピー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/3660a642-46db-ae37-4d42-52917fcf0af7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/e6516e82-5566-15d9-f3b8-b36a30faab7f.png)

---

先ほど作成したreplace.shを開き、中身に下記を記述

ビルド成果物パス -> 先ほどコピーしたもの
サーバーのpluginsフォルダのパス -> エクスプローラーなどでpluginsフォルダを右クリックし、「パスのコピー」などでしてください。

Windows環境の方はパスの区切り文字を「\」から「/」へと変えてください。Ctrl + Rなどで一括置換すると便利です。

```sh
cp -f "<ビルド成果物のパス>" "<サーバーのpluginsフォルダのパス>"
rm "<ビルド成果物のパス>"
```
ダブルクオーテーションは念のため消さないことをオススメします。

私の環境では最終的にこうなりました

```sh
cp -f "C:/Users/atsuk/Desktop/IntelliJ IDEA/ExamplePlugin/build/libs/ExamplePlugin-1.0.0-all.jar" "C:/Users/atsuk/Desktop/Server/plugins"
rm "C:/Users/atsuk/Desktop/IntelliJ IDEA/ExamplePlugin/build/libs/ExamplePlugin-1.0.0-all.jar"
```

---

再び + > Shell Script

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/4495a3d1-43d3-5d07-a783-54718db87005.png)

---

この実行構成の名前を適当に入れ(画像ではbuild&replaceとします)

スクリプトパスに先ほど作成したreplace.shを指定
インタプリターパスに環境構築前準備でインストールしたGitのbash.exeを指定してください。Windowsの場合インストーラー画面で特にいじっていなければ画像と同じ場所にインストールされるはずです。

+ > 別の構成を実行 > shadowJar構成を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/10861d4a-7085-d9cb-07ad-4b061d24511d.png)

---

最終的にこうなれば完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/b7ab3b13-38b3-2df1-77d8-f76977e4647a.png)


---

最後に先ほど作成したShell Scriptの構成を実行すればビルドが走り、jarが作成され、自動でサーバーのpluginsフォルダに置かれるはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629918/b84a8471-9454-9b0d-5a6d-2be2e81460b9.png)

サーバー内で
```
/plugman reload <プラグイン名>
```
を実行することで、再起動せずとも迅速にプラグインの更新ができるはずです。

# 結

お疲れさまでした。

[目次](https://qiita.com/Y_RyuZU/items/c2c42fa05be49f5739d7)
[前の話](https://qiita.com/Y_RyuZU/items/263ddc19d7410bb3442f)
[次の話](https://qiita.com/Y_RyuZU/items/bce27a3072fd5c630f66)