マイクラMODメモ九条へいしの開発ノート
柱 3・サーバー運営

Java 版と統合版がいっしょに遊べるマイクラサーバーの組み方(Paper 26.3+Geyser)

夕暮れのラクガキ街を上から見た景色に「全機種OK スマホ・タブレット/Switch/PS/Xbox/PC」の文字

この記事でわかること

  • Java 版と統合版を 1 つのサーバーにつなぐ部品の役割(Geyser・Floodgate・ViaVersion)
  • 最新版の Paper に Geyser のプラグイン版が追いつかないときの逃げ道
  • ゲーム機(Switch・PS・Xbox)から入ってもらうためのしくみ
  • 統合版の子だけが困った 2 つの件(アトリエから出られない・チャットが打てない)

ラクガキ街は、視聴者の人が住民になって 1 つのワールドに街を作っていく参加型サーバーです。見てくれている人には子どももいるので、パソコンではなくスマホやタブレット、ゲーム機で遊んでいる人も多いはずだと考えました。なので最初から「Java 版だけのサーバー」にはせず、統合版(Bedrock)でも入れる形にしました。

この記事では、サーバーをどんな部品で組んでいるかと、組んだあとに統合版の子からの報告で直したことを書きます。サーバーは自宅の PC で動かしていて、外からは playit.gg というトンネルのサービスを通して入ってもらっています。

全体のつながり方

部品が多いので、先に図にしておきます。Java 版の人はそのまま Paper(サーバー本体)へ、統合版の人は Geyser という通訳を通ってから Paper へ入ります。

Java 版(PC)26.1.2〜26.3 統合版スマホ・タブレット・PC ゲーム機Switch・PS・Xbox playit.gg外からの入口(Java 用と統合版用) ViaVersion古い版の Java を通訳 Geyser統合版 → Java の通訳(サーバーの外で単独) Paper 26.3サーバー本体FloodgateViaBackwards自作プラグイン フレンド経由
ラクガキ街のつながり方。統合版とゲーム機の人は Geyser で Java 版の言葉に通訳されてから、Paper に入ります。
部品役わり
Paper 26.3(ベータ)サーバー本体。自作のプラグイン(ラクガキ王国・釣り・街の守り)が入る
Geyser統合版の人の通信を、Java 版の通信に通訳する
Floodgate統合版の人を、Java 版のアカウントなしで入れる。統合版の人かどうかを見分けるのにも使う
ViaVersion・ViaBackwardsサーバーとちがう版の人を通訳する
playit.gg自宅の PC に、外から入ってもらうための入口
MCXboxBroadcast(Geyser の拡張)ゲーム機の人が「フレンド」から入れるようにする

最新版にしたら、Geyser がついてこなかった

最初は Paper 26.2 にプラグイン版の Geyser を入れていました。その後、宣伝で「最新のバージョンで遊べる」と言いたかったこともあり、Paper を 26.3 のベータ版に上げることにしました。ところが、プラグイン版の Geyser がまだ 26.3 に対応していませんでした。

そこで、Geyser をサーバーの中ではなく、外で単独で動かす形(Geyser Standalone)に切りかえました。Geyser 自体は 26.2 の言葉で話し、サーバーに入れた ViaBackwards が 26.3 へ通訳します。2 段の通訳になりますが、統合版の入口が「ラクガキ街」と応答し、PC の統合版から実際に入れることを確かめました。あわせて ViaVersion で、少し古い 26.1.2・26.2 の Java 版の人も入れるようにしています。

ハロウィン仕様の噴水の前に「最新 26.3 対応 Java版はいちばん新しいバージョンで遊べる」の文字
宣伝動画の 1 場面。Java 版の最新 26.3 で遊べることを売りにしました。

別に動かすようにしたので、サーバーの起動と停止のスクリプトに Geyser もいっしょに入れ、PC を起動したときに両方が立ち上がるようにしました。ワールドは一度 26.3 にすると 26.2 には戻せないので、切りかえる前にワールド・プラグイン・26.2 のサーバー本体を丸ごと別の場所に控えてあります。

外から入ってもらう:playit.gg

自宅の PC のサーバーに、ほかの家から入ってもらうには入口が要ります。ルーターの設定をいじらずにすむ playit.gg を使い、Java 版用と統合版用の 2 つの入口を作りました。途中で無料の上限に当たったので、有料のプランにして日本のデータセンターを選んでいます。Java 版は住所を入れるだけ、統合版は住所とポートを入れて入ってもらいます。

オープン前のテスト中に、友達が入れなかったことがありました。原因は、PC の再起動のあとで playit が止まっていたことでした。今は PC を起動すると playit も自動で動くようにしています。サーバー本体が元気でも、入口が止まっていれば外からは入れない、というのは見落としやすいところです。

ちなみに、この PC の統合版から「localhost」で自分のサーバーに入ろうとすると、Windows の決まりで同じ PC のサーバーにつながらないことがあります。自分で試すときは、外の人と同じ入口から入るのがかんたんでした。

ゲーム機の人に入ってもらうしくみ

スマホ・タブレット・PC の統合版は、自分で「サーバーを追加」できます。ところが Switch・PS・Xbox は、マイクラの中から自由にサーバーを追加できません。そこで Geyser の拡張機能 MCXboxBroadcast を入れました。サーバー用の Microsoft アカウントでサインインしておくと、ゲーム機の人はそのアカウントをフレンドに追加して、「フレンド」タブからサーバーに入れます。

本当はサーバー専用のサブアカウントを使うのがおすすめですが、今回はふだんのアカウントでサインインしてしまったので、そのまま使っています。そのかわり、「しばらく来ていないフレンドを自動で消す」設定はオフにして、本当のフレンドが消えないようにしました。参加したい子が申し込むとフレンドが増えていく形です。

なお、ゲーム機からの入り方は、自分の手元にゲーム機がないので、まだ自分では確かめられていません。うまく入れなかったという声があれば、そこから直していくつもりです。

統合版の子だけが困ったこと

iPad の子が、アトリエから出られなくなった

オープン前に iPad の友達に入ってもらったとき、「アトリエから出られない」と言われました。アトリエ(絵を描く部屋)の中では持ち物が描くための素材に入れかわるので、メニューは別の方法で開く作りです。Java 版は F キー、統合版は「しゃがむを 2 回すばやく」でした。

ところが iPad のタッチ操作では、しゃがむボタンは押すたびにオン・オフが切りかわります。2 回押しても「しゃがんだ」が 2 回続かないので、メニューが開けず、「アトリエから出る」ボタンも押せなかったのです。統合版の人には、アトリエの中でもホットバーの 9 番にラクガキ帳を入れて、タップすればメニューが開くように直しました。案内の文もディスコードの説明も「9 番のラクガキ帳をタップ」に書きかえています。

壁と柱で囲まれた地下アトリエの、まだ何も描いていないキャンバス
地下のアトリエ。中にいるあいだは持ち物が素材になるので、メニューの開き方を機種ごとに用意する必要がありました。

統合版の子だけ、チャットが打てなかった

同じ子が、描いた絵を保存しようとして止まってしまいました。保存のときに名前をチャットで書く作りなのですが、統合版の人はチャットが打てない状態でした。原因はサーバーの設定 enforce-secure-profile です。これがオンだと、Java 版のしくみで署名されていないチャットがはじかれ、統合版の人は何も書けなくなります。オフにして再起動したら、すぐに保存できました。撮影用サーバーはもともとオフだったので、試していたときには気づけませんでした。

機種ごとにボタンの名前を変えた

案内の文に「右クリックで」と書いても、スマホの子には伝わりません。Floodgate で、その人がどの機種・どの操作で遊んでいるかを読み取り、案内の文を出し分けるようにしました。メニューも、統合版の人にはチェストの画面ではなく、絵と名前のボタンが縦に並ぶ画面(フォーム)で出しています。

機種使うたたくしゃがむ
スマホ・タブレットタップ長押ししゃがむボタン
SwitchZLZR右スティック押しこみ
PSL2R2右スティック押しこみ
XboxLTRT右スティック押しこみ
Windows右クリック左クリックShift

見た目の面でも、統合版では描いたラクガキがつぶれて見える問題がありました。こちらは長くなったので、統合版でラクガキが「ひし形」につぶれた話 に分けて書いています。

入れる人の管理:ホワイトリストのかわりに住民名簿

ラクガキ街は、ディスコードで住民登録をした人だけが入れる形にしています。最初はマイクラのホワイトリストと、統合版用の Floodgate のホワイトリストを使うつもりでした。ところが Floodgate のほうは、「どこかの統合版サーバーに一度でも入ったことがある人」しか登録できず、はじめてサーバーで遊ぶ子が登録できませんでした。

そこでマイクラのホワイトリストは切り、自作の街の守りのプラグインに「住民名簿」を作りました。Java 版はマイクラの名前、統合版は Xbox の名前(ゲーマータグ)でくらべます。大文字・小文字、スペースと「_」のちがい、うしろの「#1234」は気にしないようにしました。子どもが名前を書くときに、ここがいちばんまちがえやすかったからです。ディスコードで住民登録をすると、ボットがサーバーにコマンドを送って名簿に足します。名簿にない人には「まだ住民登録がされていません」と案内が出ます。

ハロウィンの噴水の近くで、描いた赤いドラゴンをペットとして連れているプレイヤー
広場でペットを連れて歩く様子。Java 版の人も統合版の人も、同じ広場で遊んでいます。

組んでみてわかったこと

これから同じことをする人へ
  • 最新版にこだわると、統合版の部品が追いつかないことがあります。Geyser を外で単独で動かす形は、その逃げ道になりました。
  • 統合版の確認は、PC の統合版だけでは足りません。タッチ操作のしゃがむボタンのように、機械によってちがう所があります。
  • 入口(playit)・通訳(Geyser)・本体(Paper)は別々に止まります。「入れない」と言われたら、順番に 1 つずつ確かめるのが早道でした。

サーバーをどう守っているか(荒らし・事故・データの消失への備え)は、子どもも来る参加型サーバーを守るためにしたこと に続けて書いています。

この記事は、九条へいしが自分のサーバー「ラクガキ街」と撮影用サーバーで実際に試したことをもとに書いています。気づいたことや間違いは お問い合わせ から教えてください。