From 4258f52f86604d2a86be8f6ff5f91954055897ce Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 13:03:53 -0300 Subject: [PATCH] Workaround for packet order issue in neighbour chunk updates --- .../blockconnections/ConnectionData.java | 2 +- .../protocol1_13to1_12_2/packets/WorldPackets.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 9d80b64e6..287ed9105 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -118,7 +118,7 @@ public class ConnectionData { wrapper.write(Type.INT, chunkZ + chunkDeltaZ); wrapper.write(Type.BLOCK_CHANGE_RECORD_ARRAY, updates.toArray(new BlockChangeRecord[0])); try { - wrapper.send(Protocol1_13To1_12_2.class); + wrapper.send(Protocol1_13To1_12_2.class, true, true); } catch (Exception e) { e.printStackTrace(); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index e5bf57e49..e47e58382 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -25,6 +25,7 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityP import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.PaintingProvider; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.BlockStorage; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.types.Chunk1_13Type; +import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2; import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type; import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld; @@ -366,10 +367,6 @@ public class WorldPackets { } } - if (Via.getConfig().isServersideBlockConnections()) { - ConnectionData.connectBlocks(wrapper.user(), chunk); - } - // Rewrite biome id 255 to plains if (chunk.isBiomeData()) { int latestBiomeWarn = Integer.MIN_VALUE; @@ -405,6 +402,13 @@ public class WorldPackets { chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y & 0xF, z & 0xF, newId); } } + + if (Via.getConfig().isServersideBlockConnections()) { + // Workaround for packet order issue + wrapper.send(Protocol1_14To1_13_2.class, true, true); + wrapper.cancel(); + ConnectionData.connectBlocks(wrapper.user(), chunk); + } } }); }