Skip to content

gophertunnelGo言語によるMinecraft Bedrockプロトコルライブラリ

Bedrock Editionのクライアント・サーバー・プロキシ(MITM)開発を、Goで安全かつ高速に構築するための非公式日本語ドキュメント

3分でわかる gophertunnel

gophertunnel は、Go 言語で Minecraft: Bedrock Edition の通信を扱うためのデファクトスタンダード・ライブラリです。

go
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/sandertv/gophertunnel/minecraft"
)

func main() {
	// サーバーにクライアントとして接続する(認証なし/ローカルサーバー向け)
	conn, err := minecraft.Dialer{}.Dial("raknet", "127.0.0.1:19132")
	if err != nil {
		log.Fatalf("接続失敗: %v", err)
	}
	defer conn.Close()

	// ゲーム開始データを取得
	gameData := conn.GameData()
	fmt.Printf("スポーン座標: %v, ワールド名: %s\n", gameData.PlayerPosition, gameData.WorldName)

	// パケット受信ループ
	for {
		pk, err := conn.ReadPacket()
		if err != nil {
			break
		}
		fmt.Printf("パケット受信 [ID: 0x%02x] %T\n", pk.ID(), pk)
	}
}

主なユースケース

  • プロキシ (MITM): 送受信パケットをロギング・検証・改変するデバッグツールやMODツールの作成
  • ボット・自動化: チャットの連携、サーバー監視、自動行動クライアントの開発
  • サーバー実装: Dragonfly などのGo製Bedrockサーバーのプロトコル層として利用
  • Ping / サーバー情報監視: サーバーのオンライン状態、MOTD、人数を高速にポーリング

Released under the MIT License.