Skip to content

Releases: mar1mo-41414/MineScale

v1.2.11 — VPN 経由でも LAN 一覧が出るように

07 Jun 02:44

Choose a tag to compare

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 一覧が安定して出るように

07 Jun 02:36

Choose a tag to compare

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 一覧が出るように

07 Jun 02:17

Choose a tag to compare

MineScale-Java v1.2.9

修正

ホストが Symmetric NAT のとき、ジョイン側 MC に LAN 一覧が出ない問題 を修正しました。

原因

LAN announce が「listener が bind される前」に開始されていました:

  1. punch_holes 完了 (~5 秒)
  2. LAN announce 開始 ← ここ
  3. QUIC タイムアウト待ち (8 秒)
  4. relay フォールバック決定
  5. 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 不安定を解消

03 Jun 13:15

Choose a tag to compare

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 一覧 ⚠️ Mac不安定
LAN 他端末から見える ❌ 見える ✅ 見えない ✅ 見えない
LAN クリックで offline 入室 ⚠️ 不安定 ⚠️ Mac不安定 ⚠️ MC 側依存

LAN 一覧クリックで offline アカウントが弾かれる場合は 「サーバーを追加」で 127.0.0.1:<port> を使ってください。GUI に表示される Direct address をそのまま貼れば確実に入れます。

サーバー差し替え不要

v1.2.7 — LAN 一覧から直接参加できるように

03 Jun 05:49

Choose a tag to compare

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 Server127.0.0.1:<port> を指定すれば確実に入れます。

サーバー差し替え不要

v1.2.6 — relay 詳細ログ

03 Jun 05:27

Choose a tag to compare

MineScale-Java v1.2.6

変更

relay 経由の接続が失敗するケースの切り分けに必要なログを追加:

  • Minecraft が TCP 接続してきた瞬間(どの transport で)
  • relay 接続成立までの時間
  • セッション継続時間 + 転送バイト数
  • どちら側が先に EOF に達したか

これで「MC が 2 つ目のコネクションを開いていない」のか「relay 経路が途中で死んだ」のかが区別できます。

通常ユーザーへの影響

なし。サーバー差し替えも不要です。

v1.2.5 — relay 安定化

03 Jun 05:04

Choose a tag to compare

MineScale-Java v1.2.5

修正

ユーザー報告の 「relay 経由で繋いだ後の Minecraft Internal Exception / ワールド接続タイムアウト / Relay session active で停止」 系の不安定さに対する 3 つの対策:

  1. TCP keepalive を有効化 — parked な relay 接続が中継機器(CGN / VPN / Pangolin など)で何も知らず切られて zombie 化していた。次の joiner が来た時にゾンビ経由で繋ごうとして即 RST → MC Internal Exception。45 秒 idle / 15 秒間隔で生存確認するように。

  2. TCP_NODELAY を全 relay 接続に — Nagle のせいで MC の小さなパケットが最大 40ms 単位で纏められていた。MC のタイムアウトを誘発するレベル。サーバー / クライアント両端で無効化。

  3. 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 — マルチジョイナーまわりの修正

03 Jun 03:57

Choose a tag to compare

MineScale-Java v1.2.4

バグ修正

3 つの関連する修正:

  1. 15 分経過後のログ汚染を停止 — ホスト側で部屋が期限切れになった後、poll_peers 404 Not Found のエラーが 3 秒おきに出続けていた問題を修正。一度だけ「部屋が期限切れになりました」と表示して polling を停止します。既に接続済みのセッションは影響を受けません。

  2. 2 人目以降の NAT パンチ復活 — v1.2.0 以降、ホストの QUIC エンドポイントから新規ジョイナーへの NAT-poke が 実は無動作だった バグを修正(quinn の endpoint.connect() がデフォルトクライアント設定なしで失敗していたのが if let Ok で握り潰されていた)。これにより 2 人目以降も QUIC で繋がる確率が大幅に上がります。

  3. リレーサーバーのパーカー 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 メタデータ埋め込み

03 Jun 03:30

Choose a tag to compare

MineScale-Java v1.2.3

変更

  • Windows: .exe に製品情報を埋め込み
    • エクスプローラで右クリック → プロパティ → 詳細タブで「製品名」「バージョン」等が表示されるようになりました
    • winget へのパッケージ登録準備(次のステップで winget 配信を開始予定)

通常ユーザーへの影響

なし。表示メタデータが整っただけです。

サーバー差し替え不要。

v1.2.2 — GUI が --telemetry フラグを受け付け

03 Jun 02:04

Choose a tag to compare

MineScale-Java v1.2.2

変更

  • GUI が --telemetry フラグを受け付けるように

Windows ではエクスプローラからのダブルクリック起動で環境変数 MC_SHARE_TELEMETRY=1 が使えないため、CLI フラグでもオプトインできるようにしました。

mc-share-gui.exe --telemetry

ショートカットを作って「リンク先」末尾に --telemetry を足すのが楽です。

Mac / Linux は環境変数のままでもフラグでもどちらでも OK。

通常ユーザーへの影響

なし。テレメトリ協力者の Windows 環境のみ恩恵があります。

サーバー側差し替えは不要です。