From 8144d028a85735ccf8b713f826ddf28a872ff2bb Mon Sep 17 00:00:00 2001 From: ImDaMilan Date: Fri, 27 Jan 2023 12:59:03 +0100 Subject: [PATCH] Fixed multiple players for event flow --- .../events/PlayerEventFlowCallback.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/imdamilan/spigotadditions/events/PlayerEventFlowCallback.java b/src/main/java/com/imdamilan/spigotadditions/events/PlayerEventFlowCallback.java index 139df1c..d7f5996 100644 --- a/src/main/java/com/imdamilan/spigotadditions/events/PlayerEventFlowCallback.java +++ b/src/main/java/com/imdamilan/spigotadditions/events/PlayerEventFlowCallback.java @@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerEvent; import org.bukkit.plugin.Plugin; +import java.util.HashMap; import java.util.function.Consumer; /** @@ -17,8 +18,7 @@ */ public class PlayerEventFlowCallback implements Listener { - private Player player; - private boolean done; + private final HashMap map = new HashMap<>(); private Consumer firstEvent; private Consumer secondEvent; @@ -54,14 +54,15 @@ public PlayerEventFlowCallback then(Consumer event) { public void onEvent(T event) { firstEvent.accept(event); Player player = event.getPlayer(); - this.done = true; + map.put(player, true); } @EventHandler public void onSecondEvent(K event) { - if (done) { - if (event.getPlayer().getUniqueId().equals(player.getUniqueId())) { + if (map.getOrDefault(event.getPlayer(), false)) { + if (map.containsKey(event.getPlayer())) { secondEvent.accept(event); + map.remove(event.getPlayer()); } } }