Minecraft Mod対応マルチサーバ 構築(ver 1.16.3) (Ubuntu 20.04)

Minecraft Mod対応マルチサーバーを立てようと思ったが、情報が古いものばかりであったので補足として書いておく。

結論としてはJavaのバージョンに気を付けること。

事前準備

Minecraft Forgeのインストールまでやっておく。ここまでは他のサイトを見て進めればOK。

参考: 【最新版対応】マイクラMODサーバーの立て方【ForgeMOD 編】 - 揚げポテほかほかクラフト

Javaのバージョンの確認

Java16では、サーバー起動時に下記のようにエラーになる。そのためJava15以下をインストールしておく。

java.lang.NoSuchFieldException: ucp
    at java.base/java.lang.Class.getDeclaredField(Class.java:2549)
    at cpw.mods.gross.Java9ClassLoaderUtil.getSystemClassPathURLs(Java9ClassLoaderUtil.java:28)
    at cpw.mods.modlauncher.TransformationServicesHandler.discoverServices(TransformationServicesHandler.java:139)
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:74)
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:65)
    at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63)
    at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60)
    at net.minecraftforge.server.ServerMain.main(ServerMain.java:57)
Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "urls" is null
    at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:153)
    at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:174)
    at java.base/java.net.URLClassLoader.<init>(URLClassLoader.java:149)
    at cpw.mods.modlauncher.TransformationServicesHandler$TransformerClassLoader.<init>(TransformationServicesHandler.java:159)
    at cpw.mods.modlauncher.TransformationServicesHandler.discoverServices(TransformationServicesHandler.java:139)
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:74)
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:65)
    at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63)
    at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60)
    at net.minecraftforge.server.ServerMain.main(ServerMain.java:57)

今回は下記コマンドでJava13を入れた。

sudo apt install openjdk-13-jdk

次に下記のようなシェルスクリプトを作成し、実行する。これは、サーバー起動時に毎回行う。

#!/bin/bash
java -Xmx1024M -Xms1024M -jar forge-1.16.3-34.1.0.jar nogui

このとき、利用規約に同意しろと出るので、eula.txtの最後のところをTrueにする。

その後、再度シェルスクリプトを実行すると、サーバーが起動する。このときmodsディレクトリが作成されるので、ここにModをいれる。