diff --git a/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java b/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java index 1ed4c6f..667bcce 100644 --- a/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java +++ b/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java @@ -33,6 +33,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Set; @@ -69,14 +70,22 @@ public class REntityServer implements Listener { private final HashMap viewDistance = new HashMap<>(); private EntityActionListener callback = null; + private final Set playersThatClicked = Collections.synchronizedSet(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; };