Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Raspberry Pi 4B+をMinecraftのマルチ鯖にする その1:まずは内部LANに

色々あって、Raspiでマインクラフト鯖を立てる必要がでてきました。
マインクラフトなんてVtuberの配信でしか見てないんですが(

そんな、ほぼ知識ゼロと言って過言でない状況からはじめるので、構築済み環境としては著名らしいSpigotというパッケージの力を借りてまずはローカルマルチ鯖を立ててみようと思います。

実際のところ

少し前からRasPiにはマインクラフトが入ってますが、それじゃなくマルチ鯖として外部から接続できるようにします。
今回の用途では、RaspiOSのLiteで十分のようですが、普段の個人実験で使ってるUbuntu20LTS on Raspi4Bでやりました

大前提としてのminecfartクライアントの導入

そもそも、これがなければはじまらない。
f:id:shuzo_kino:20210313012835p:plain

設定ファイルを

$ sudo nano /boot/firmware/usercfg.txt

を実行し、Minecraft実行時に処理落ちしないためのリミッター解除しときます。
各項目を詳しく知りたい方は公式へ。

over_voltage=6

arm_freq=2000

Javaの実行環境

MinecraftJava実行環境の構築が必要です。
Spigotの公式はOpenJDKの8を勧めてるので、それで。
あわせて、ビルドツールに必要らしいGITもなければ導入。

$ sudo apt-get install git openjdk-8-jre-headless

spigot(=minecraftの)を導入

ビルドツールを入れる

mkdir minecraft
cd $_
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

Git clone後の処理必要なので、GITのCRLFの自動処理は無しに。

git config --global --unset core.autocrlf

ようやくビルド。
RasPi4Bの8Gメモリでも結構時間がかかります。

 java -jar BuildTools.jar

#....

Success! Everything completed successfully. Copying final .jar files now.
Copying spigot-1.16.5-R0.1-SNAPSHOT.jar to /home/ubuntu/minecraft/./spigot-1.16.5.jar
  - Saved as ./spigot-1.16.5.jar

スタートアップスクリプトの作成

nano minecraft_startup.sh

中身はこう。

#!/bin/sh

java -Xms1024m -Xmx3500m -XX:+UseG1GC -jar spigot-1.16.5.jar nogui
chmod +x mineraft_startup.sh

更に、eulaがデフォでfalseなのでtrueに

$ nano eula.txt
eula=true

ここまできて、ようやく

./mineraft_startup.sh

f:id:shuzo_kino:20210313012609p:plain
野菜の成長率とかゾンビの発生とかの変数読んでるのが面白いなと思いました(小学生並みの感想)

で、パッケージを読んだとおもったら、今度は

Preparing spawn area:

といってマップ生成に結構時間がかかります。
結局、3分以上かかりました。

[Server thread/INFO]: Done (195.501s)! For help, type "help"

この状態でRasPiと同一ネットワークに入ってアクセスすれば完了。
外部解放用の設定とかはまたこれか。