diff --git a/src/main/java/me/metallicgoat/tweaksaddon/tweaks/messages/TopKillerMessage.java b/src/main/java/me/metallicgoat/tweaksaddon/tweaks/messages/TopKillerMessage.java index aad12e1..f75c291 100644 --- a/src/main/java/me/metallicgoat/tweaksaddon/tweaks/messages/TopKillerMessage.java +++ b/src/main/java/me/metallicgoat/tweaksaddon/tweaks/messages/TopKillerMessage.java @@ -10,6 +10,7 @@ import me.metallicgoat.tweaksaddon.config.ConfigValue; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -17,6 +18,18 @@ public class TopKillerMessage implements Listener { + public static HashMap> arenaPlayers = new HashMap<>(); + + @EventHandler + public void onRoundStart(RoundEndEvent event){ + if (!ConfigValue.top_killer_message_enabled) + return; + + final Arena arena = event.getArena(); + + arenaPlayers.put(arena, arena.getPlayers()); + } + @EventHandler public void onGameOver(RoundEndEvent event) { if (!ConfigValue.top_killer_message_enabled) @@ -26,7 +39,7 @@ public void onGameOver(RoundEndEvent event) { final HashMap nameIntMap = new HashMap<>(); // Online Players - for (OfflinePlayer player : arena.getPlayers()) + for (OfflinePlayer player : arenaPlayers.get(arena)) addStatsToMap(nameIntMap, player); // Offline Players @@ -34,6 +47,7 @@ public void onGameOver(RoundEndEvent event) { addStatsToMap(nameIntMap, Bukkit.getOfflinePlayer(memory.getUniqueId())); printMessage(arena, sortHashMapByValue(nameIntMap)); + arenaPlayers.remove(arena); } // TODO this bad @@ -42,7 +56,6 @@ private void printMessage(Arena arena, HashMap playerInt // There is Killers if (!playerIntegerMap.isEmpty()) { - for (String line : ConfigValue.top_killer_pre_lines) formattedList.add(Message.build(line).done()); @@ -84,7 +97,7 @@ private void addStatsToMap(HashMap nameIntMap, OfflinePl if(player == null) return; - final Optional stats = PlayerDataAPI.get().getStatsNow(player); + final Optional stats = PlayerDataAPI.get().getStatsNow(player); if(!stats.isPresent()) return;