MCPcopy Create free account
hub / github.com/ZeppelinMC/Zeppelin / sendSpawnChunks

Method sendSpawnChunks

server/player/chunks.go:15–59  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

13}
14
15func (p *Player) sendSpawnChunks() error {
16 viewDistance := p.ViewDistance()
17
18 x, _, z := p.Position()
19 chunkX, chunkZ := int32(x)>>4, int32(z)>>4
20
21 if err := p.WritePacket(&play.SetCenterChunk{ChunkX: chunkX, ChunkZ: chunkZ}); err != nil {
22 return err
23 }
24
25 var chunks int32
26
27 if err := p.WritePacket(&play.ChunkBatchStart{}); err != nil {
28 return err
29 }
30
31 buf := buffers.Buffers.Get().(*bytes.Buffer)
32
33 for x := chunkX - viewDistance; x < chunkX+viewDistance; x++ {
34 for z := chunkZ - viewDistance; z < chunkZ+viewDistance; z++ {
35 buf.Reset()
36 c, err := p.Dimension().GetChunkBuf(x, z, buf)
37 if err != nil {
38 continue
39 }
40 buf.Reset()
41
42 if err := p.WritePacket(c.EncodeBuf(p.registryIndexes["minecraft:worldgen/biome"], buf)); err != nil {
43 return err
44 }
45 chunks++
46 }
47 }
48 buffers.Buffers.Put(buf)
49
50 if err := p.WritePacket(&play.ChunkBatchFinished{
51 BatchSize: chunks,
52 }); err != nil {
53 return err
54 }
55
56 _, err := p.awaitPacket(play.PacketIdChunkBatchReceived)
57
58 return err
59}

Callers 1

startGameMethod · 0.95

Calls 8

ViewDistanceMethod · 0.95
DimensionMethod · 0.95
awaitPacketMethod · 0.95
WritePacketMethod · 0.80
EncodeBufMethod · 0.80
PositionMethod · 0.45
GetMethod · 0.45
GetChunkBufMethod · 0.45

Tested by

no test coverage detected