更新履歴・変更点 (Changelog)
Sandertv/gophertunnel のバージョンごとの主な更新内容・プロトコル変更点・非互換変更(Breaking Changes)のまとめです。
v1.62.0 (2026-09-16)
Minecraft Bedrock v1.26.50 (Protocol Version: 2193) への対応および新パケット・UI制御・プロトコル仕様の変更が含まれます。
📌 プロトコル・バージョン更新
- Minecraft 対応バージョン:
1.26.45➔1.26.50 - Protocol Version:
2169➔2193
🆕 新規パケットの追加
| パケット | ID | 方向 | 説明 |
|---|---|---|---|
packet.SetPlayerFurnaceOptions | IDSetPlayerFurnaceOptions | 双方向 | かまど / 燻製器 / 溶鉱炉 UI でのプレイヤー選択設定(タブ切り替え・フィルタリング・レイアウト)の通知 |
packet.RecordStarted | IDRecordStarted | サーバー ➔ クライアント | ジュークボックス等で指定ブロック位置においてレコードの再生が開始されたことを通知。再生ハンドル(Handle)が付属 |
🔄 パケット・プロトコルの変更点
1. packet.PlaySound
- 音声再生制御のためのフィールドが追加されました:
BypassListenerRangeCheck bool: リスナー(プレイヤー)と音源との距離判定を無視して音声を再生するかどうか。PlaybackPositionSeconds protocol.Optional[float32]: 再生開始オフセット(秒)。未指定の場合は先頭から再生。
2. packet.ClientboundUpdateSoundData
- 再生中サウンドのパラメータ更新(
Stop,SetVolume,SetPitch,Fade,SeekTo,Pause,Resume)が、従来のOptional型から固定の非オプショナルフィールドprotocol.SoundDataUpdateに変更されました。
3. packet.MoveActorDelta
- 移動補間用フィールド
Ticks uint64が追加されました。クライアント側で移動を補間するtick数を指定します。
4. packet.BossEvent
PlayerUniqueID int64フィールドがプロトコルから削除されました。
5. packet.PlayerAuthInput
ItemInteractionData,ItemStackRequest,BlockActions,VehicleRotation,ClientPredictedVehicleのシリアライズ方式が内部的にDoubleOptionalFuncから標準のOptionalFuncに変更・最適化されました。InputFlagsの存在チェックフラグ(bool)が不要となり、フォーマットが簡素化されました。
6. packet.InventoryTransaction / protocol.UseItemTransactionData
- ブロック操作トランザクションにおいて、操作に使用した手(利き手・オフハンド)を示す
Hand byte(HandSlotMainHand/HandSlotOffHand)が追加されました。 ActionsフィールドがOptional[[]InventoryAction]から直接の[]InventoryActionに変更されました。- 不要な存在チェック用フラグ(bool)がワイヤフォーマットから削除されました。
7. サブチャンク・ワールド定義の変更
- サブチャンク高さマップ (
protocol.SubChunkEntry):HeightMapData/RenderHeightMapDataの型がOptional[[]int8]から 16×16 行列型Optional[HeightMap]([16][16]int8)に厳格化されました。
- ディメンション定義 (
protocol.DimensionDefinition):- 従来の
Range [2]int32が廃止され、MinimumY int32(最低高度)およびHeightRange int32(総ブロック高さ)に分離されました。 - ディメンションのデフォルトバイオームを示す
DefaultBiome stringが追加されました。
- 従来の
8. カメラプリセット (protocol.CameraPreset)
ApplyInheritedStartingRotation bool: 継承元プリセットの初期回転を適用するかどうか。StartingRotation Optional[mgl32.Vec2]: プリセット適用時の初期回転角(ピッチ・ヨー)。
9. リソースパック・UI設定
protocol.PackSetting: 設定値の型として文字列リスト(PackSettingTypeStringList,[]string)がサポートされました。protocol.TextShape: 複数行テキストの行間を指定するLineGapHeight float32が追加されました。- 地図アイコン装飾 (
protocol.MapDecorationType):- トライアルチャンバー(
TrialChambers)や廃れた野営地(AbandonedCamp)、古代都市、廃坑、砂漠の寺院、海底遺跡などの新しい装飾タイプ定数が追加されました。
- トライアルチャンバー(
10. 切断理由定数 (packet.Disconnect)
DisconnectReasonHostDisconnected,DisconnectReasonNetherNetIdentityNotAllowed,DisconnectReasonExpiredToken,DisconnectReasonUnsupportedTransportなどの切断理由が拡充されました。
🌐 ネットワーク・トランスポート (NetherNet / 接続処理)
- NetherNet 接続時に URL 形式のアドレスにおけるポート重複表記仕様(
https://<host>:<port>:<port>)にクライアントログイン処理が対応。 - NetherNet の認証環境取得(
authEnv)において、Issuer ドメインのパス末尾正規化が行われるようになりました。
v1.61.0 (2026-08-25)
🐛 バグ修正
- アイテムスタック応答 (
protocol.StackResponseSlotInfo):- 悪言・不適切発言フィルタリング用の
FilteredCustomNameのエンコードがOptional[string]に修正され、フィルタリング設定が有効なクライアントでの処理安定性が向上しました。
- 悪言・不適切発言フィルタリング用の
v1.59.0 (2026-08-15)
📌 プロトコル・バージョン更新
- Minecraft Bedrock v1.26.44 に対応。
- リスナーによる拡張サーバーリストメタデータのブロードキャストサポート。
- テキストパケット(
packet.Text)における Cereal 制約の上限チェック導入。 go-xsapi/v2およびgo-playfab/v2への移行。