diff --git a/src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java b/src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java index b744543c1..56de03101 100644 --- a/src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java +++ b/src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java @@ -415,18 +415,18 @@ public class PlayerSocketConnection extends PlayerConnection { public void flushSync() throws IOException { final SocketChannel channel = this.channel; final List waitingBuffers = this.waitingBuffers; - if (!channel.isConnected()) throw new ClosedChannelException(); - // Fast exit if the tick buffer can be reused - if (waitingBuffers.isEmpty() && tickBuffer.getPlain().writeChannel(channel)) - return; - // Write as much as possible from the waiting list - Iterator iterator = waitingBuffers.iterator(); - while (iterator.hasNext()) { - BinaryBuffer waitingBuffer = iterator.next(); - if (!waitingBuffer.writeChannel(channel)) break; - iterator.remove(); - PooledBuffers.add(waitingBuffer); + if (waitingBuffers.isEmpty()) { + tickBuffer.getPlain().writeChannel(channel); + } else { + // Write as much as possible from the waiting list + Iterator iterator = waitingBuffers.iterator(); + while (iterator.hasNext()) { + BinaryBuffer waitingBuffer = iterator.next(); + if (!waitingBuffer.writeChannel(channel)) break; + iterator.remove(); + PooledBuffers.add(waitingBuffer); + } } }