diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 62c8ea2a9..40a3768c8 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -1743,7 +1743,6 @@ public class Player extends LivingEntity implements CommandSender { DisconnectPacket disconnectPacket = new DisconnectPacket(); disconnectPacket.message = text; playerConnection.sendPacket(disconnectPacket); - playerConnection.disconnect(); playerConnection.refreshOnline(false); } diff --git a/src/main/java/net/minestom/server/network/PacketProcessor.java b/src/main/java/net/minestom/server/network/PacketProcessor.java index 869183077..df9a486d9 100644 --- a/src/main/java/net/minestom/server/network/PacketProcessor.java +++ b/src/main/java/net/minestom/server/network/PacketProcessor.java @@ -56,6 +56,12 @@ public final class PacketProcessor { channel, c -> new NettyPlayerConnection((SocketChannel) channel.channel()) ); + // Prevent the client from sending packets when disconnected (kick) + if (!playerConnection.isOnline()) { + playerConnection.disconnect(); + return; + } + if (MinecraftServer.getRateLimit() > 0) playerConnection.getPacketCounter().incrementAndGet();