SakuraVPS(ubuntu)でMinecraft server MOD The Twilight Forestを動かす

# The Twilight Forest とは

MinecraftのMODです、この記事ではThe Twilight Forest MODを適用したサーバを起動する方法を記述しています
クライアント側の導入方法は記述していません

- 参考
    - https://w.atwiki.jp/minecraft/pages/448.html
    - https://www.curseforge.com/minecraft/mc-mods/the-twilight-forest

# 各プランやversion

この記事を書いている時点(2019/11/11)では Minecraft公式 の Latest versionは `1.14.4` です.
Minecraft Forge は `1.12.2` を利用しますが、これは The Twilight Forest が 1.12を推奨している為です.

- SakuraVPS 1G プラン
    - https://vps.sakura.ad.jp/
- Minecraft Forge (1.12.2 - 14.23.5.2847)
    - Minecraft Forge は Minecraftのラッパーサーバです
    - https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.12.2.html
- Mods
    - the-twilight-forest
        - https://www.curseforge.com/minecraft/mc-mods/the-twilight-forest/files
    - patchouli
        - https://www.curseforge.com/minecraft/mc-mods/patchouli/files

# 起動手順

## SakuraVPS

最低、1Gプラン必要と思います.
[Ubuntu_ScriptOfMinecraftJavaServer](https://vps-news.sakura.ad.jp/about_startupscript_minecraft/) という物がSakuraVPSに用意されていますが、The Twilight Forest を起動する事が目的であれば利用しなくても動かせます.
しかし、Java, screen, iptable等の設定も行ってくれるので、利用したほうが手間が減ります.

## Minecraft Forge のダウンロード

1. ![Minecraft_Forge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59518/9b43d4a0-9ca9-1a1d-93ca-1400fa2ff353.png)
2. ![AdFoc_us.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59518/32d46c20-7b51-291b-fb4e-4b731b20c6e6.png)

`forge-1.12.2-14.23.5.2847-installer.jar` が DLできます

## Minecraft Forge の起動

```bash:TheTwilightForest用のディレクトリを作成
$ ssh ubuntu@<sakuravpsのip>
$ sudo mkdir /ops/twilight
$ sudo chown ubuntu:root /ops/twilight
```

```bash:forge-*-installer.jarの転送(作業PC側で実行)
$ cd forge-*-installer.jarのダウンロード先
$ scp forge-*-installer.jar ubuntu@<sakuravpsのip>:/opt/twilight
```

```bash:forge-*-installer.jarの起動
$ ssh ubuntu@<sakuravpsのip>
$ cd /ops/twilight

# forge-*.*-*.*.*.*-installer.jar を配置
$ java -jar forge-*.*-*.*.*.*-installer.jar nogui --installServer
$ java -Xmx1024M -Xms1024M -jar forge-*.*-*.*.*.*-universal.jar

# ここで eula への同意が必要になります (viで編集するかsedで置換)
$ vi eula.txt
$ sed -i s/false/true/I /opt/minecraft/eula.txt

# もう一度起動します
$ java -Xmx1024M -Xms1024M -jar forge-*.*-*.*.*.*-universal.jar
# 起動後, Ctrl+C などで終了する
# mods/ ディレクトリが作成されている事を確認
```

## Modsの導入

- Mods
    - the-twilight-forest
        - https://www.curseforge.com/minecraft/mc-mods/the-twilight-forest/files
    - patchouli
        - https://www.curseforge.com/minecraft/mc-mods/patchouli/files


.jar を 2つDLします, 私はこの２つで起動/接続する事ができました
他に必要な物があるようであれば適宜追加してください

```bash:*.jarの転送(作業PC側で実行)
$ cd *.jarのダウンロード先
$ scp twilightforest-1.12.2-3.10.1013-universal.jar ubuntu@<sakuravpsのip>:/opt/twilight/mods
$ scp Patchouli-1.0-20.jar ubuntu@<sakuravpsのip>:/opt/twilight/mods
```

## Systemctlの設定 (VPSが再起動した場合に The Twilight Forest を自動で立ち上げる設定)

Ubuntu_ScriptOfMinecraftJavaServer を利用した場合は公式minecraftのsystemctlを停止します

```bash
$ sudo su -
root@~# systemctl stop minecraft
root@~# systemctl disable minecraft
```

状態を確認したい場合はlistを確認しましょう

```bash
$ systemctl list-unit-files --type=service | grep minecraft
minecraft.service                          disabled
```

vi などでforgeの起動scriptを作成します

```shell:/opt/twilight/start_server.sh
#!/bin/bash
cd /opt/twilight && java -Xmx1024M -Xms1024M -jar forge-1.12.2-14.23.5.2847-universal.jar
```

```shell:/etc/systemd/system/twilight.service
[Unit]
Description=Server daemon for Minecraft twilight

[Service]
Type=forking
User=ubuntu
KillMode=none
Restart=on-failure
ExecStart=/usr/bin/screen -dmS twilight /bin/bash -c "/opt/twilight/start_server.sh"
ExecStop=/usr/bin/screen -S twilight -X stuff "stop\r"

[Install]
WantedBy=multi-user.target
```

```:bash
$ sudo su -
root@~# systemctl start twilight
root@~# systemctl enable twilight
```

これで上手くいっていれば The Twilight Forest が起動しています.

# The Twilight Forest が適用できているか確認

- screenにattach
- /gamemode creative <プレイヤー名>
- Minecraftクライアント側で Twilightへの入り口を作成する