package nautilus.game.arcade.stats; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; import nautilus.game.arcade.events.GameStateChangeEvent; import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.games.skywars.events.PlayerOpenChestEvent; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockBreakEvent; public class WinWithoutOpeningChestStatTracker extends StatTracker { private final Set _openChest = new HashSet<>(); public WinWithoutOpeningChestStatTracker(Game game) { super(game); } @EventHandler public void onOpenChest(PlayerOpenChestEvent e) { Player player = e.getPlayer(); UUID uuid = player.getUniqueId(); _openChest.add(uuid); } @EventHandler public void onBreakChest(BlockBreakEvent event) { if (event.getBlock().getType() == Material.CHEST) _openChest.add(event.getPlayer().getUniqueId()); } @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onGameStateChange(GameStateChangeEvent event) { if (event.GetState() == Game.GameState.End) { List winners = getGame().getWinners(); if (winners != null) { for (Player winner : winners) { if (!_openChest.contains(winner.getUniqueId())) addStat(winner, "NoChest", 1, true, false); } } } } }