From bbfc5b9e940a14c07e13956a9501a95ea0de5e6d Mon Sep 17 00:00:00 2001 From: Dereku Date: Sat, 7 Feb 2026 08:29:23 +0700 Subject: [PATCH] EntityPlayerMP: Faster chunk sending (And this avoids thousands of useless chunk light updates on the client side) --- src/net/minecraft/entity/EntityPlayerMP.java | 30 ++++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/net/minecraft/entity/EntityPlayerMP.java b/src/net/minecraft/entity/EntityPlayerMP.java index 689bf04..095fc89 100644 --- a/src/net/minecraft/entity/EntityPlayerMP.java +++ b/src/net/minecraft/entity/EntityPlayerMP.java @@ -151,16 +151,28 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting { } if (var1 && !this.loadedChunks.isEmpty()) { - ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0); - if (var7 != null) { - boolean var8 = false; - if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) { - var8 = true; - } + // Patch start + HashSet queue = new HashSet<>(); + for (int count = 0; !this.loadedChunks.isEmpty() && count < 9; count++) { + //ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0); + ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.remove(0); + if (var7 != null) { + //boolean var8 = false; + //if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) { + // var8 = true; + //} - if (var8) { - WorldServer var9 = this.mcServer.getWorldManager(this.dimension); - this.loadedChunks.remove(var7); + //if (var8) { + // WorldServer var9 = this.mcServer.getWorldManager(this.dimension); + // this.loadedChunks.remove(var7); + queue.add(var7); + } + } + + if (!queue.isEmpty()) { + WorldServer var9 = this.mcServer.getWorldManager(this.dimension); + for (ChunkCoordIntPair var7 : queue) { + // Patch end this.playerNetServerHandler.sendPacket(new Packet51MapChunk(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, 16, 128, 16, var9)); List var5 = var9.getTileEntityList(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, var7.chunkXPos * 16 + 16, 128, var7.chunkZPos * 16 + 16);