diff --git a/bot/basic/info.go b/bot/basic/info.go index 12d8259..2987dd9 100644 --- a/bot/basic/info.go +++ b/bot/basic/info.go @@ -9,7 +9,7 @@ import ( // WorldInfo content player info in server. type WorldInfo struct { - DimensionType string + DimensionType int32 DimensionNames []string // Identifiers for all worlds on the server. DimensionName string // Name of the world being spawned into. HashedSeed int64 // First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise @@ -41,7 +41,7 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { (*pk.Boolean)(&p.ReducedDebugInfo), (*pk.Boolean)(&p.EnableRespawnScreen), (*pk.Boolean)(&p.DoLimitCrafting), - (*pk.Identifier)(&p.WorldInfo.DimensionType), + (*pk.VarInt)(&p.WorldInfo.DimensionType), (*pk.Identifier)(&p.DimensionName), (*pk.Long)(&p.HashedSeed), (*pk.UnsignedByte)(&p.Gamemode), @@ -84,7 +84,7 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { func (p *Player) handleRespawnPacket(packet pk.Packet) error { var copyMeta bool err := packet.Scan( - (*pk.String)(&p.DimensionType), + (*pk.VarInt)(&p.DimensionType), (*pk.Identifier)(&p.DimensionName), (*pk.Long)(&p.HashedSeed), (*pk.UnsignedByte)(&p.Gamemode), diff --git a/bot/world/chunks.go b/bot/world/chunks.go index ab36252..8618936 100644 --- a/bot/world/chunks.go +++ b/bot/world/chunks.go @@ -1,7 +1,7 @@ package world import ( - "errors" + "fmt" "github.com/Tnze/go-mc/bot" "github.com/Tnze/go-mc/bot/basic" @@ -41,9 +41,9 @@ func (w *World) onPlayerSpawn(pk.Packet) error { func (w *World) handleLevelChunkWithLightPacket(packet pk.Packet) error { var pos level.ChunkPos - _, currentDimType := w.c.Registries.DimensionType.Find(w.p.DimensionType) + currentDimType := w.c.Registries.DimensionType.FindByID(w.p.DimensionType) if currentDimType == nil { - return errors.New("dimension type " + w.p.DimensionType + " not found") + return fmt.Errorf("dimension type %d not found", w.p.DimensionType) } chunk := level.EmptyChunk(int(currentDimType.Height) / 16) if err := packet.Scan(&pos, chunk); err != nil {