Releases: mar1mo-41414/MineScale
v1.2.11 — VPN 経由でも LAN 一覧が出るように
MineScale-Java v1.2.11
修正
macOS で VPN を使ってる場合に LAN 一覧が出たり出なかったりする問題を修正しました。
原因
macOS のカーネルが 224.0.0.0/4 の multicast を VPN tunnel に流してしまうケースがあり、その場合 multicast が VPN に吸い込まれて同一ホストの Minecraft に届きません。
修正
LAN announce を 全 IPv4 インターフェイスに対して明示的に送信 するように変更しました。Wi-Fi、VPN、Bridge、loopback など全部に同じパケットを送るので、MC が読んでるインターフェイスのうち少なくとも 1 つが必ず届きます。
実機検証: VPN アクティブな Mac で en0 経由が確実に受信できることを確認済み。
サーバー差し替え不要
v1.2.10 — Mac で LAN 一覧が安定して出るように
MineScale-Java v1.2.10
修正
macOS の特定ネットワーク環境 (VPN tunnel + Wi-Fi 等) で multicast loopback が動かず、v1.2.8/v1.2.9 では LAN 一覧に MineScale World が出ない問題を修正しました。
TTL=0 + multicast_loop だと macOS では同一ホスト内の Minecraft にすら届かないケースがあったため、TTL=1 に戻しました (v1.2.6 までの挙動)。
トレードオフ
LAN 内の他端末からも MineScale World が見えるようになりますが、これは以前ユーザーが「気になる程度の問題」と判断していた仕様。LAN 一覧が出ない方が実害が大きいため、表示の確実性を優先しました。
v1.2.9 で入った「listener bind 後に announce 開始」の修正は維持されています。
サーバー差し替え不要
v1.2.9 — Sym ホストで LAN 一覧が出るように
MineScale-Java v1.2.9
修正
ホストが Symmetric NAT のとき、ジョイン側 MC に LAN 一覧が出ない問題 を修正しました。
原因
LAN announce が「listener が bind される前」に開始されていました:
- punch_holes 完了 (~5 秒)
- LAN announce 開始 ← ここ
- QUIC タイムアウト待ち (8 秒)
- relay フォールバック決定
- listener bind (~13 秒目)
5〜13 秒の窓で MC が一覧上の MineScale World を ping すると、TCP Connection refused が返り、MC が entry を オフライン扱い にして、その後 announce が届いても再表示しない動作になります。
Cone-Cone (QUIC が 4-6 秒で立ち上がる) では窓が短くて引っかからないことが多いですが、Sym-host 経由 (relay 13 秒+) では毎回引っかかります。
修正後
listener bind + transport 確定の タイミングで LAN announce を開始するようにしました。これで MC の初回 ping が常に通ります。
サーバー差し替え不要
v1.2.8 — LAN 一覧の macOS 不安定を解消
MineScale-Java v1.2.8
修正
v1.2.7 で macOS の LAN 一覧に MineScale World が出ない(または出たり消えたり)問題を修正しました。
v1.2.7 では multicast の送信元 IP を 127.0.0.1 に固定するため loopback インターフェイス経由で送信していましたが、macOS では同 PC 内の MC が受信できないケースがあったため、デフォルトインターフェイス経由に戻しました。プライバシーは TTL=0 で確保しているので、これまで通り LAN 他端末から MineScale World は見えません。
仕様
| v1.2.6 | v1.2.7 | v1.2.8 | |
|---|---|---|---|
| 同 PC の MC で LAN 一覧 | ✅ | ✅ | |
| LAN 他端末から見える | ❌ 見える | ✅ 見えない | ✅ 見えない |
| LAN クリックで offline 入室 |
LAN 一覧クリックで offline アカウントが弾かれる場合は 「サーバーを追加」で 127.0.0.1:<port> を使ってください。GUI に表示される Direct address をそのまま貼れば確実に入れます。
サーバー差し替え不要
v1.2.7 — LAN 一覧から直接参加できるように
MineScale-Java v1.2.7
修正
これまで報告されていた 「LAN 一覧から参加しようとすると失敗するが、Add Server で 127.0.0.1:25565 を直接指定すれば入れる」 問題を修正しました。同時に LAN 内の他端末から MineScale World が見えてしまう 問題も解決します。
仕組み
LAN announce のマルチキャストを 同じ PC の中だけに届くように 変更しました:
- 送信インターフェイスを loopback に
- TTL を 0 に
- ループバック配送は有効のまま
効果
| 旧 (v1.2.6) | 新 (v1.2.7) | |
|---|---|---|
| LAN 内他端末から見える | ❌ 見える | ✅ 見えない |
| 同じ PC の MC からの LAN 一覧 | ✅ 見える | ✅ 見える |
| LAN 一覧クリックでオフライン入室 | ❌ 失敗 | ✅ 成功 |
オフラインアカウントが LAN 一覧から参加できなかったのは、MC が handshake パケットに接続先 IP(v1.2.6 までは LAN IP)を入れていて、ホスト側 MC が「これは自分の LAN じゃない、オンライン認証が必要」と判定していたためです。loopback 経由にすると IP が 127.0.0.1 になり、ホスト MC が LAN クライアントと認識します。
万一 loopback multicast を受信できない OS / 設定の場合は、これまで通り Add Server に 127.0.0.1:<port> を指定すれば確実に入れます。
サーバー差し替え不要
v1.2.6 — relay 詳細ログ
MineScale-Java v1.2.6
変更
relay 経由の接続が失敗するケースの切り分けに必要なログを追加:
- Minecraft が TCP 接続してきた瞬間(どの transport で)
- relay 接続成立までの時間
- セッション継続時間 + 転送バイト数
- どちら側が先に EOF に達したか
これで「MC が 2 つ目のコネクションを開いていない」のか「relay 経路が途中で死んだ」のかが区別できます。
通常ユーザーへの影響
なし。サーバー差し替えも不要です。
v1.2.5 — relay 安定化
MineScale-Java v1.2.5
修正
ユーザー報告の 「relay 経由で繋いだ後の Minecraft Internal Exception / ワールド接続タイムアウト / Relay session active で停止」 系の不安定さに対する 3 つの対策:
-
TCP keepalive を有効化 — parked な relay 接続が中継機器(CGN / VPN / Pangolin など)で何も知らず切られて zombie 化していた。次の joiner が来た時にゾンビ経由で繋ごうとして即 RST → MC Internal Exception。45 秒 idle / 15 秒間隔で生存確認するように。
-
TCP_NODELAY を全 relay 接続に — Nagle のせいで MC の小さなパケットが最大 40ms 単位で纏められていた。MC のタイムアウトを誘発するレベル。サーバー / クライアント両端で無効化。
-
relay address にホスト名を許可 — これまで IP:port のリテラルしか受け付けなかったので、運営者の private LAN にルーティング不能な joiner は relay に到達できなかった。
mcs.markund.f5.si:9090のような hostname:port も受け付け、connect 時に DNS 解決するように。
加えて host 側 relay プールを 2 → 4 に増量(複数 joiner の MC status ping + world-join が重なっても枯渇しない)。
⚠ Coordination Server 差し替え必須
サーバーバイナリのアップデート& RELAY_ADDR を public hostname に変更が必要です(既に運営インスタンスは更新済み)。
ダウンロード
| OS | GUI |
|---|---|
| Windows | mc-share-gui-windows-x64.exe |
| Mac | mc-share-gui-macos |
| Linux x64 / arm64 | mc-share-gui-linux-x64 / mc-share-gui-linux-arm64 |
v1.2.4 — マルチジョイナーまわりの修正
MineScale-Java v1.2.4
バグ修正
3 つの関連する修正:
-
15 分経過後のログ汚染を停止 — ホスト側で部屋が期限切れになった後、
poll_peers 404 Not Foundのエラーが 3 秒おきに出続けていた問題を修正。一度だけ「部屋が期限切れになりました」と表示して polling を停止します。既に接続済みのセッションは影響を受けません。 -
2 人目以降の NAT パンチ復活 — v1.2.0 以降、ホストの QUIC エンドポイントから新規ジョイナーへの NAT-poke が 実は無動作だった バグを修正(quinn の
endpoint.connect()がデフォルトクライアント設定なしで失敗していたのがif let Okで握り潰されていた)。これにより 2 人目以降も QUIC で繋がる確率が大幅に上がります。 -
リレーサーバーのパーカー timeout バグ — 15 分後のクリーンアップが "FIFO の先頭" を pop する作りで、queue が回っているとき 無関係な有効ストリームを誤って捨てる ことがあった問題を修正。ストリーム ID で targeted 削除するように変更。
想定される影響
ユーザーが報告していた 「2 人目接続後に 1 人目で Connection reset」 は、バグ 2 で 2 人目が不要に relay フォールバックに落ちたうえ、バグ 3 で host-side の parked stream が時々破壊されていたのが原因と推定されます。
⚠ Coordination Server も差し替えが必要
リレーサーバーのパーカーロジックを修正したため、サーバー側バイナリの更新が必要です(クライアントだけ更新しても効果半減)。
ダウンロード
| OS | GUI |
|---|---|
| Windows | mc-share-gui-windows-x64.exe |
| Mac | mc-share-gui-macos |
| Linux x64 / arm64 | mc-share-gui-linux-x64 / mc-share-gui-linux-arm64 |
v1.2.3 — Windows メタデータ埋め込み
MineScale-Java v1.2.3
変更
- Windows:
.exeに製品情報を埋め込み- エクスプローラで右クリック → プロパティ → 詳細タブで「製品名」「バージョン」等が表示されるようになりました
- winget へのパッケージ登録準備(次のステップで winget 配信を開始予定)
通常ユーザーへの影響
なし。表示メタデータが整っただけです。
サーバー差し替え不要。
v1.2.2 — GUI が --telemetry フラグを受け付け
MineScale-Java v1.2.2
変更
- GUI が
--telemetryフラグを受け付けるように
Windows ではエクスプローラからのダブルクリック起動で環境変数 MC_SHARE_TELEMETRY=1 が使えないため、CLI フラグでもオプトインできるようにしました。
mc-share-gui.exe --telemetry
ショートカットを作って「リンク先」末尾に --telemetry を足すのが楽です。
Mac / Linux は環境変数のままでもフラグでもどちらでも OK。
通常ユーザーへの影響
なし。テレメトリ協力者の Windows 環境のみ恩恵があります。
サーバー側差し替えは不要です。