diff --git a/src/main/java/net/minestom/server/network/netty/channel/ClientChannel.java b/src/main/java/net/minestom/server/network/netty/channel/ClientChannel.java index ad9abe2d9..f915afccf 100644 --- a/src/main/java/net/minestom/server/network/netty/channel/ClientChannel.java +++ b/src/main/java/net/minestom/server/network/netty/channel/ClientChannel.java @@ -71,7 +71,10 @@ public class ClientChannel extends SimpleChannelInboundHandler { // Release tick buffer if (playerConnection instanceof NettyPlayerConnection) { - ((NettyPlayerConnection) playerConnection).getTickBuffer().release(); + final ByteBuf tickBuffer = ((NettyPlayerConnection) playerConnection).getTickBuffer(); + synchronized (tickBuffer) { + tickBuffer.release(); + } } } } diff --git a/src/main/java/net/minestom/server/network/netty/codec/PacketCompressor.java b/src/main/java/net/minestom/server/network/netty/codec/PacketCompressor.java index 514f9f90d..ebee11ebc 100644 --- a/src/main/java/net/minestom/server/network/netty/codec/PacketCompressor.java +++ b/src/main/java/net/minestom/server/network/netty/codec/PacketCompressor.java @@ -36,7 +36,7 @@ public class PacketCompressor extends ByteToMessageCodec { private final byte[] buffer = new byte[8192]; - private final Deflater deflater = new Deflater(); + private final Deflater deflater = new Deflater(3); private final Inflater inflater = new Inflater(); public PacketCompressor(int threshold) { diff --git a/src/main/java/net/minestom/server/utils/PacketUtils.java b/src/main/java/net/minestom/server/utils/PacketUtils.java index b391f96c2..bf71ecb88 100644 --- a/src/main/java/net/minestom/server/utils/PacketUtils.java +++ b/src/main/java/net/minestom/server/utils/PacketUtils.java @@ -25,7 +25,7 @@ import java.util.zip.Deflater; public final class PacketUtils { private static final PacketListenerManager PACKET_LISTENER_MANAGER = MinecraftServer.getPacketListenerManager(); - private static final ThreadLocal DEFLATER = ThreadLocal.withInitial(Deflater::new); + private static final ThreadLocal DEFLATER = ThreadLocal.withInitial(() -> new Deflater(3)); private PacketUtils() {