diff --git a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PlayerEventListener.java b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PlayerEventListener.java index 44108d8..5602221 100644 --- a/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PlayerEventListener.java +++ b/proto_1.12.2_netty/src/main/java/mc/core/network/proto_1_12_2/netty/PlayerEventListener.java @@ -5,6 +5,7 @@ import mc.core.eventbus.Subscriber; import mc.core.eventbus.events.SC_ChunkLoadEvent; import mc.core.eventbus.events.SC_ChunkUnloadEvent; import mc.core.eventbus.events.SC_PlayerMoveEvent; +import mc.core.network.NetChannel; import mc.core.network.proto_1_12_2.TeleportManager; import mc.core.network.proto_1_12_2.packets.ChunkDataPacket; import mc.core.network.proto_1_12_2.packets.PlayerPositionAndLookPacket; @@ -27,6 +28,10 @@ public class PlayerEventListener { @Subscriber public void playerChunkLoadHandler(SC_ChunkLoadEvent event) { + if (event.getNeedLoadChunks().size() == 0) return; + + final NetChannel channel = event.getPlayer().getChannel(); + for(Integer compressXZ : event.getNeedLoadChunks()) { int[] xz = CompactedCoords.uncompressXZ(compressXZ); Chunk chunk = event.getPlayer().getWorld().getChunk(xz[0], xz[1]); @@ -38,12 +43,18 @@ public class PlayerEventListener { packet.setInitChunk(true); packet.setChunk(chunk); - event.getPlayer().getChannel().writeAndFlush(packet); + channel.write(packet); } + + channel.flush(); } @Subscriber public void playerChunkUnloadHandler(SC_ChunkUnloadEvent event) { + if (event.getNeedUnloadChunks().size() == 0) return; + + final NetChannel channel = event.getPlayer().getChannel(); + for(Integer compressXZ : event.getNeedUnloadChunks()) { int[] xz = CompactedCoords.uncompressXZ(compressXZ); @@ -51,7 +62,9 @@ public class PlayerEventListener { packet.setX(xz[0]); packet.setZ(xz[1]); - event.getPlayer().getChannel().writeAndFlush(packet); + channel.write(packet); } + + channel.flush(); } }