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

この記事でわかること
- Java 版と統合版を 1 つのサーバーにつなぐ部品の役割(Geyser・Floodgate・ViaVersion)
- 最新版の Paper に Geyser のプラグイン版が追いつかないときの逃げ道
- ゲーム機(Switch・PS・Xbox)から入ってもらうためのしくみ
- 統合版の子だけが困った 2 つの件(アトリエから出られない・チャットが打てない)
ラクガキ街は、視聴者の人が住民になって 1 つのワールドに街を作っていく参加型サーバーです。見てくれている人には子どももいるので、パソコンではなくスマホやタブレット、ゲーム機で遊んでいる人も多いはずだと考えました。なので最初から「Java 版だけのサーバー」にはせず、統合版(Bedrock)でも入れる形にしました。
この記事では、サーバーをどんな部品で組んでいるかと、組んだあとに統合版の子からの報告で直したことを書きます。サーバーは自宅の PC で動かしていて、外からは playit.gg というトンネルのサービスを通して入ってもらっています。
全体のつながり方
部品が多いので、先に図にしておきます。Java 版の人はそのまま Paper(サーバー本体)へ、統合版の人は Geyser という通訳を通ってから 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 版の人も入れるようにしています。

別に動かすようにしたので、サーバーの起動と停止のスクリプトに 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 で、その人がどの機種・どの操作で遊んでいるかを読み取り、案内の文を出し分けるようにしました。メニューも、統合版の人にはチェストの画面ではなく、絵と名前のボタンが縦に並ぶ画面(フォーム)で出しています。
| 機種 | 使う | たたく | しゃがむ |
|---|---|---|---|
| スマホ・タブレット | タップ | 長押し | しゃがむボタン |
| Switch | ZL | ZR | 右スティック押しこみ |
| PS | L2 | R2 | 右スティック押しこみ |
| Xbox | LT | RT | 右スティック押しこみ |
| Windows | 右クリック | 左クリック | Shift |
見た目の面でも、統合版では描いたラクガキがつぶれて見える問題がありました。こちらは長くなったので、統合版でラクガキが「ひし形」につぶれた話 に分けて書いています。
入れる人の管理:ホワイトリストのかわりに住民名簿
ラクガキ街は、ディスコードで住民登録をした人だけが入れる形にしています。最初はマイクラのホワイトリストと、統合版用の Floodgate のホワイトリストを使うつもりでした。ところが Floodgate のほうは、「どこかの統合版サーバーに一度でも入ったことがある人」しか登録できず、はじめてサーバーで遊ぶ子が登録できませんでした。
そこでマイクラのホワイトリストは切り、自作の街の守りのプラグインに「住民名簿」を作りました。Java 版はマイクラの名前、統合版は Xbox の名前(ゲーマータグ)でくらべます。大文字・小文字、スペースと「_」のちがい、うしろの「#1234」は気にしないようにしました。子どもが名前を書くときに、ここがいちばんまちがえやすかったからです。ディスコードで住民登録をすると、ボットがサーバーにコマンドを送って名簿に足します。名簿にない人には「まだ住民登録がされていません」と案内が出ます。

組んでみてわかったこと
- 最新版にこだわると、統合版の部品が追いつかないことがあります。Geyser を外で単独で動かす形は、その逃げ道になりました。
- 統合版の確認は、PC の統合版だけでは足りません。タッチ操作のしゃがむボタンのように、機械によってちがう所があります。
- 入口(playit)・通訳(Geyser)・本体(Paper)は別々に止まります。「入れない」と言われたら、順番に 1 つずつ確かめるのが早道でした。
サーバーをどう守っているか(荒らし・事故・データの消失への備え)は、子どもも来る参加型サーバーを守るためにしたこと に続けて書いています。