本文へ移動
ch1w4

www.ch1w4.com / blog / minecraft-lobby-xbox

ロビーを浮島にして、統合版はフレンド一覧から入れるようにした

#minecraft#geyser

マイクラ鯖のロビーが、ただの平らな場所だったので作り直した。

配布ワールドを使う

「ゲートが4つあって、開けた感じ」のロビーを探して、Planet Minecraftで配布されている Glorious Downfall(作者:Springstof)にした。空に浮かぶ島がいくつもあって、ゲートは4つ。サーバーで使ってよく、条件は作者のクレジットを消さないこと、再配布しないこと。

ワールドフォルダごと配られているので、ロビーの world を丸ごと入れ替えた。

docker compose stop lobby
mv lobby/world lobby/world.old
mv /tmp/lobby-new lobby/world
chown -R 1000:1000 lobby/world

2016年のワールドなので、初回の起動で新しい形式への変換が走る。少し待てば普通に入れた。

難易度がピースフルにならない

compose.yml に DIFFICULTY: peaceful を書いたのに、モンスターが出る設定のままだった。難易度はワールドのデータ(level.dat)にも保存されていて、配布ワールドの設定が優先されていたのが原因。コマンドで変えれば、ワールドに保存される。

docker exec lobby rcon-cli difficulty peaceful

ゲートからサバイバルへ

ゲートは Advanced Portals というプラグインで、Velocity経由でほかのサーバーに飛ばすようにした。itzgのイメージなら、環境変数に書くだけで入る。

MODRINTH_PROJECTS: advanced-portals

ゲームの中で範囲を選んで、行き先のサーバー名を指定する。

/portal wand
/portal create name:survival bungee:survival

残りの3つのゲートは、新しいサーバーができたらつなぐ。

統合版はフレンド一覧から

Geyserを入れているので統合版でも入れるけど、Xbox・Switch・PSの統合版は、アドレスを入れてサーバーに入る画面が使えないことが多い。

そこで MCXboxBroadcast を入れた。サーバー専用のMicrosoftアカウントがオンラインのフレンドとして見えるようになり、そのアカウントをフレンドに追加すると「参加可能なフレンド」からサーバーに入れる。Geyserの拡張機能(extension)として入れるので、Velocityに入っているGeyserの extensions フォルダにjarを置くだけ。

設定でハマりやすいのは、配信するアドレス。auto のままだとDockerの中のアドレスが配信されて、外のフレンドが入れない。

session:
  remote-address: mc.ch1w4.com
  remote-port: 19132

配信用のアカウントは24時間オンラインになるうえ、規約的にグレーな動きをするので、メインとは別のアカウントを作って使っている。ログインが切れたらDiscordに通知が来るようにもした。