minecraft.Conn
*minecraft.Conn は、gophertunnel における最も中核的な接続構造体です。net.Conn を満たしており、Bedrock プロトコルのパケット送受信をスレッドセーフ(書き込み)かつ安全にカプセル化しています。
主要メソッド一覧
パケット送受信
func (conn *Conn) ReadPacket() (pk packet.Packet, err error)
受信キューからパケットをデコードして1件返します。
注意
ReadPacket は同時に複数の goroutine から呼び出してはいけません。単一の goroutine でループを回してください。
func (conn *Conn) WritePacket(pk packet.Packet) error
パケットを送信バッファへ書き込みます。複数の goroutine から同時に呼び出しても安全です。
func (conn *Conn) Flush() error
バッファ内に溜まっている未送信パケットを即時に圧縮・暗号化し、ネットワーク層へフラッシュします。
接続・ゲーム状態の参照
func (conn *Conn) GameData() GameData
サーバー接続時(または StartGame 呼出時)に確定したワールドの初期状態やプレイヤーのエンティティID(EntityRuntimeID)、スポーン座標などを取得します。
func (conn *Conn) ClientData() login.ClientData
クライアントから送られた端末情報、スキンデータ、言語設定などを取得します。
func (conn *Conn) IdentityData() login.IdentityData
プレイヤーの表示名(DisplayName)、UUID、XUID(Xbox Live ID)を取得します。
func (conn *Conn) StartGame(data GameData) error
サーバー側として接続を受け付けた後、クライアントへ StartGame パケットを送信してゲームセッションを開始します。
func (conn *Conn) Close() error
接続を切断し、内部の goroutine やバッファを解放します。