From cebc19fd3f3ef04071207c5a2932df08383cbcc8 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 27 Jan 2019 19:43:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=B2=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B5/=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B5=20=D1=87=D0=B0=D0=BD=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proto_1_12_2/netty/PlayerEventListener.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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(); } }