From 958d13b1cc87374684400858a302c042e50632a9 Mon Sep 17 00:00:00 2001 From: OurLobanov Date: Mon, 24 Jun 2024 18:30:59 +0300 Subject: [PATCH] Cooldown fix --- .../geyser/network/PacketCooldownManager.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/network/PacketCooldownManager.java b/core/src/main/java/org/geysermc/geyser/network/PacketCooldownManager.java index f1fa9a6be..56dd23219 100644 --- a/core/src/main/java/org/geysermc/geyser/network/PacketCooldownManager.java +++ b/core/src/main/java/org/geysermc/geyser/network/PacketCooldownManager.java @@ -24,9 +24,9 @@ public class PacketCooldownManager { setPacketCooldown(LoginPacket.class, -1, 2); setPacketCooldown(ResourcePackClientResponsePacket.class, -1, 4); setPacketCooldown(ResourcePackChunkRequestPacket.class, -1, 0); - setPacketCooldown(TextPacket.class, 1000, 10); - setPacketCooldown(CommandRequestPacket.class, 1000, 10); - setPacketCooldown(ModalFormResponsePacket.class, 1000, 10); + setPacketCooldown(TextPacket.class, 1000, 50); + setPacketCooldown(CommandRequestPacket.class, 1000, 50); + setPacketCooldown(ModalFormResponsePacket.class, 1000, 50); } public void setPacketCooldown(Class packetClass, int cooldownMillis, int maxCount) { @@ -51,14 +51,17 @@ public class PacketCooldownManager { private void updateCooldown(BedrockPacket packet) { String packetName = packet.getClass().getSimpleName(); CooldownSettings settings = packetCooldownSettings.get(packetName); - activeCooldowns.computeIfAbsent(packetName, k -> new CooldownTracker()); - CooldownTracker tracker = activeCooldowns.get(packetName); + CooldownTracker tracker = activeCooldowns.computeIfAbsent(packetName, k -> { + CooldownTracker newTracker = new CooldownTracker(); + long cooldownMillis = settings.cooldownMillis(); + if (cooldownMillis == -1) { + newTracker.setExpiryTime(-1); + } else { + newTracker.setExpiryTime(System.currentTimeMillis() + cooldownMillis); + } + return newTracker; + }); tracker.incrementCount(); - if (settings.cooldownMillis() == -1) { - tracker.setExpiryTime(settings.cooldownMillis()); - } else { - tracker.setExpiryTime(System.currentTimeMillis() + settings.cooldownMillis()); - } } public boolean handle(BedrockPacket packet) {