From c4a294b18628d59ee3584075ac2a0f6389c3b9b2 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Fri, 24 Feb 2023 20:38:37 +0100 Subject: [PATCH] Fix double and tripple click of REntityServer --- .../src/de/steamwar/entity/REntityServer.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java b/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java index 1ed4c6f..32a7efc 100644 --- a/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java +++ b/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java @@ -69,14 +69,22 @@ public class REntityServer implements Listener { private final HashMap viewDistance = new HashMap<>(); private EntityActionListener callback = null; + private final Set playersThatClicked = new HashSet<>(); private final BiFunction filter = (player, packet) -> { REntity entity = entityMap.get(useEntityTarget.get(packet)); if (entity == null) return packet; + if (playersThatClicked.contains(player)) + return null; + + playersThatClicked.add(player); EntityAction action = getEntityAction.apply(useEntityAction.get(packet)) == 1 ? EntityAction.ATTACK : EntityAction.INTERACT; - Bukkit.getScheduler().runTask(Core.getInstance(), () -> callback.onAction(player, entity, action)); + Bukkit.getScheduler().runTask(Core.getInstance(), () -> { + playersThatClicked.remove(player); + callback.onAction(player, entity, action); + }); return null; };