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をいれる。