From 667305bb8173ce40c2d4b1d9455bc4936e213252 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Sat, 8 Jun 2024 11:27:31 +0200 Subject: [PATCH] prevent duplicates --- .../de/shiewk/smoderation/listener/PunishmentListener.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/de/shiewk/smoderation/listener/PunishmentListener.java b/src/main/java/de/shiewk/smoderation/listener/PunishmentListener.java index fb5c949..31fd43b 100644 --- a/src/main/java/de/shiewk/smoderation/listener/PunishmentListener.java +++ b/src/main/java/de/shiewk/smoderation/listener/PunishmentListener.java @@ -4,6 +4,7 @@ import de.shiewk.smoderation.SModeration; import de.shiewk.smoderation.event.PunishmentIssueEvent; import de.shiewk.smoderation.punishments.Punishment; import de.shiewk.smoderation.punishments.PunishmentType; +import de.shiewk.smoderation.storage.PunishmentContainer; import io.papermc.paper.event.player.AsyncChatEvent; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -41,6 +42,11 @@ public class PunishmentListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPunishmentIssue(PunishmentIssueEvent event){ final Punishment punishment = event.getPunishment(); + final PunishmentContainer container = event.getContainer(); + final Punishment duplicate = container.find(p -> p.to.equals(punishment.to) && p.type == punishment.type && p.until >= punishment.time); + if (duplicate != null){ + container.remove(duplicate); + } switch (punishment.type){ case KICK, BAN -> { final Player player = Bukkit.getPlayer(punishment.to);