From 607df98c3ddc471001d9f5f60d38d9c302821ddf Mon Sep 17 00:00:00 2001 From: patyhank Date: Sat, 16 Apr 2022 12:50:50 +0800 Subject: [PATCH 1/2] Receive Respawn World Information --- bot/basic/basic.go | 1 + bot/basic/info.go | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/bot/basic/basic.go b/bot/basic/basic.go index 3eb4745..736caf5 100644 --- a/bot/basic/basic.go +++ b/bot/basic/basic.go @@ -21,6 +21,7 @@ func NewPlayer(c *bot.Client, settings Settings) *Player { bot.PacketHandler{Priority: 0, ID: packetid.ClientboundLogin, F: b.handleLoginPacket}, bot.PacketHandler{Priority: 0, ID: packetid.ClientboundKeepAlive, F: b.handleKeepAlivePacket}, bot.PacketHandler{Priority: 0, ID: packetid.ClientboundPlayerPosition, F: b.handlePlayerPosition}, + bot.PacketHandler{Priority: 0, ID: packetid.ClientboundRespawn, F: b.handleRespawnPacket}, ) return b } diff --git a/bot/basic/info.go b/bot/basic/info.go index 81bcec7..7aeb7df 100644 --- a/bot/basic/info.go +++ b/bot/basic/info.go @@ -111,3 +111,13 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { } return nil } +func (p *Player) handleRespawnPacket(packet pk.Packet) error { + err := packet.Scan( + pk.NBT(&p.WorldInfo.Dimension), + (*pk.Identifier)(&p.WorldName), + ) + if err != nil { + return Error{err} + } + return nil +} From 2e11823b4a628e79759696082f10b7c6444100df Mon Sep 17 00:00:00 2001 From: patyhank Date: Sat, 16 Apr 2022 15:18:47 +0800 Subject: [PATCH 2/2] Scanned whole packet --- bot/basic/info.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bot/basic/info.go b/bot/basic/info.go index 7aeb7df..6b6f355 100644 --- a/bot/basic/info.go +++ b/bot/basic/info.go @@ -112,9 +112,16 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { return nil } func (p *Player) handleRespawnPacket(packet pk.Packet) error { + var copyMeta bool err := packet.Scan( pk.NBT(&p.WorldInfo.Dimension), (*pk.Identifier)(&p.WorldName), + (*pk.Long)(&p.HashedSeed), + (*pk.UnsignedByte)(&p.Gamemode), + (*pk.Byte)(&p.PrevGamemode), + (*pk.Boolean)(&p.IsDebug), + (*pk.Boolean)(&p.IsFlat), + (*pk.Boolean)(©Meta), ) if err != nil { return Error{err}