## インスタンスを立てる
- firewallの設定
- name: allow-minecraft
- ターゲットタグ: minecraft-server
- IP範囲: 0.0.0.0/0
- プロトコルとポート: tcp:25565
- インスタンスを立てる
- ネットワークタグにminecraft-serverを入れる
- ディスクを追加
## 環境構築
```bash
# diskのフォーマットとマウント
# ref. <https://cloud.google.com/compute/docs/disks/add-persistent-disk>
# diskの確認
$ sudo lsblk
$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_ID
$ sudo mkdir -p /mnt/disks/minecraft
$ sudo mount -o discard,defaults /dev/DEVICE_ID /mnt/disks/minecraft
$ sudo chmod a+w /mnt/disks/minecraft
$ sudo cp /etc/fstab /etc/fstab.backup
$ sudo blkid /dev/DEVICE_ID
$ sudo vi /etc/fstab
UUID=UUID_VALUE /mnt/disks/MNT_DIR ext4 discard,defaults,NOFAIL_OPTION 0 2
```
```bash
# java入れる
$ sudo apt-get install -yq openjdk-11-jdk git screen
$ java -version
# spigot入れる
$ cd /mnt/disks/minecraft
$ curl -OL <https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar>
$ java -jar BuildTools.jar
$ java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar spigot-1.16.3.jar nogui # versionはその時の最新になるので適当に
$ vi eula.txt
eula=false -> true
$ java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar spigot-1.16.3.jar nogui
```
ここまでできればクライアントからログインできる
動作確認ができればバックグラウンドで実行する
```bash
# spigotのコンソールではstopと打てば停止する
> stop
[13:57:03] [Server thread/INFO]: Stopping the server
# screenで実行する
$ screen -AmdS spigot java -Xmx1024M -Xms1024M -XX:MaxPermSize=128M -jar spigot-1.16.3.jar nogui
# screenの止め方
$ screen -p 0 -S spigot -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\\015'
$ screen -p 0 -S spigot -X eval 'stuff "save-all"\\015'
# ちょっと待ってからストップする(目安10秒)
$ screen -p 0 -S spigot -X eval 'stuff "stop"\\015'
```
## 参考リンク
[https://mtdtx9.hatenablog.com/entry/2017/05/14/202820](https://mtdtx9.hatenablog.com/entry/2017/05/14/202820)