目指しているのはJava版と統合版クロスプレイできる環境を安価に作る。
楽天モバイルのsimをつけているスマホにTermuxを入れ、そこにUbuntuを入れる。Ubuntuを入れないとインストールできるJavaバージョンが17あたりでPaperMCのpaper-1.20.4-497.jarがエラーになる。Ubuntuを入れたらJava21を入れて他のサイトを参考にしながらPaperMCを入れる。
インストールしたのは
paper-1.20.4-497.jar Java版マイクラサーバ本体
Geyser-Spigot.jar クロスプレイに必要
floodgate-spigot.jar クロスプレイに必要
ViaVerSion-5.0.3.jar マイクラクライアントバージョンチェックを回避するのに必要
(異なるバージョンのJavaマイクラから接続できるようにするもの)
このあたりをヒントにほかのサイトでインストールを試みてほしい。
ここからがメインの話
楽天モバイルのSIMは10.という内部IPが割り当てられている。これでは他のネットワークから接続できない。そこでlocaltoneというポート転送サービスを利用する。freeプランの場合転送トンネルは1つしか設定できないが、テストはできる。Java版と統合版で使うプロトコルとポートが異なるので、それは調べて設定してほしい。android側はgoogle playからインストールしたlocaltoneのアプリを起動すれば自動的にトンネルを設定してくれる。
Java版はTCP通信で特に苦労なく接続する。
統合版はUDP通信で少し苦労した。
詳しくわからないが自分の楽天モバイルスマホ(ここでマイクラサーバが動いている)へ「同じスマホで動かしているandroid版マイクラクライアント(統合版)」と「楽天モバイルスマホにテザリングしたWindowsPC上の統合版」から「localtoneトンネル経由」での接続はできない。
もちろんスマホのテザリングゲートウェイIP宛てなら接続できる。
試しにWindowsPCを妻のmineoスマホにテザリングに接続したところ「mineoスマホにテザリングしたWindowsPC上の統合版」に接続できた。
UDPの場合そういう仕様なのだろう。
ハマりポイントなのでQuiiaに記録しておく