From 86278e837afab0554aa3ba663eecfa1780d2fda0 Mon Sep 17 00:00:00 2001 From: Myles Date: Mon, 14 Jun 2021 19:46:25 +0100 Subject: [PATCH] Fix 1.17 BungeeCord support --- .../bungee/handlers/BungeeEncodeHandler.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/bungee/src/main/java/com/viaversion/viaversion/bungee/handlers/BungeeEncodeHandler.java b/bungee/src/main/java/com/viaversion/viaversion/bungee/handlers/BungeeEncodeHandler.java index 0d8aec72d..87a9ba36d 100644 --- a/bungee/src/main/java/com/viaversion/viaversion/bungee/handlers/BungeeEncodeHandler.java +++ b/bungee/src/main/java/com/viaversion/viaversion/bungee/handlers/BungeeEncodeHandler.java @@ -70,11 +70,17 @@ public class BungeeEncodeHandler extends MessageToMessageEncoder { if (ctx.pipeline().names().indexOf("compress") > ctx.pipeline().names().indexOf("via-encoder")) { // Need to decompress this packet due to bad order ByteBuf decompressed = BungeePipelineUtil.decompress(ctx, buf); - try { - buf.clear().writeBytes(decompressed); - } finally { - decompressed.release(); + + // Ensure the buffer wasn't reused + if (buf != decompressed) { + try { + buf.clear().writeBytes(decompressed); + } finally { + decompressed.release(); + } } + + // Reorder the pipeline ChannelHandler dec = ctx.pipeline().get("via-decoder"); ChannelHandler enc = ctx.pipeline().get("via-encoder"); ctx.pipeline().remove(dec);