【備忘録】MinecraftのPaperMCサーバーをシェルスクリプトで簡単に起動する方法

今回はMinecraftのPaperMCサーバーを起動する方法を書いていきたいと思います。

## 環境
・Ubuntu22.04（OS）

サーバーへのファイルのアップロードや編集をWindows11からGUIで行うにはWinSCPが便利です。

## ■ダウンロード

[「WinSCP」SCP/SFTP/FTPS対応のFTPクライアント - 窓の杜](https://forest.watch.impress.co.jp/library/software/winscp/)

## PaperMCの最新版をダウンロード
以下のページからダウンロードします。
[Paper Downloads | PaperMC](https://papermc.io/downloads/paper)

## WinSCPを起動
WinSCPをダブルクリックで起動します。

## WinSCPにログイン
WinSCPにIPアドレスやパスワード、ポート番号を入力して、ログインします。

## サーバーにアップロード
最新版（ここでは例としてpaper-1.21.1-40.jar）をPaperMCサーバーのディレクトリにアップロードします。
## flags.sh開く
[flags.sh](https://flags.sh/)をクリックして開きます。
## flags.shのファイル名を変更
server.jarを自分がダウンロードしたファイル名（例としてpaper-1.21.1-40.jar）に変更します。

## メモリのバーを変更
自分のサーバーのスペックの範囲内に収まるように、
メモリのバーを変更します。
（ここでは例として4GBに設定しています。）

## 「#!/bin/bash」から始まる所をコピー
[flags.sh](https://flags.sh/)の以下のようなところをコピーします。
```
#!/bin/bash

java -Xms4096M -Xmx4096M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar paper-1.21.1-40.jar --nogui
```
## サーバーにstart.txtを作成しコピペ
右クリックして新規→ファイルをクリックして、start.txtを作成します。
そこにさっきコピーしたシェルスクリプトを貼り付けて保存します。

```:start.txt
#!/bin/bash

java -Xms4096M -Xmx4096M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar paper-1.21.1-40.jar --nogui
```

## 拡張子を.shに変更
start.txtをダブルクリックして、start.shに変更します。

## マイクラサーバーを起動します。
PaperMCサーバーのディレクトリにcdコマンドで移動し、PaperMCのマイクラサーバーを起動します。
```
cd minecraft
bash start.sh
```

# アップデートする場合
## 最新版のPaperMCをダウンロードします。
[Paper Downloads | PaperMC](https://papermc.io/downloads/paper)

## WinSCPを起動
WinSCPを起動します。
[「WinSCP」SCP/SFTP/FTPS対応のFTPクライアント - 窓の杜](https://forest.watch.impress.co.jp/library/software/winscp/)

## WinSCPにログイン
WinSCPにIPアドレスやパスワード、ポート番号を入力して、ログインします。

## start.shを開く
start.shをダブルクリックで開きます。

## .jarファイル名を書き換える
最後の方のpaper-1.21.1-39.jarというように古いバージョンになっていると思うので、書き換えます。
例としてpaper-1.21.1-39.jarをpaper-1.21.1-40.jarにします。
これは自分の環境によって異なります。

```:start.sh
#!/bin/bash

java -Xms4096M -Xmx4096M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar paper-1.21.1-40.jar --nogui
```

## シェルスクリプトでマイクラ鯖を起動
シェルスクリプトでMinecraftサーバーを起動します。

```
cd minecraft
bash start.sh
```