package plus.crates.Listeners; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerQuitEvent; import plus.crates.Utils.GUI; public class GUIListeners implements Listener { @EventHandler public void onInventoryClick(InventoryClickEvent event) { if (GUI.guis.containsKey(event.getWhoClicked().getUniqueId())) { event.setCancelled(true); if (event.getCurrentItem() == null || event.getRawSlot() != event.getSlot() || event.getCurrentItem().getType().equals(Material.AIR)) return; GUI gui = GUI.guis.get(event.getWhoClicked().getUniqueId()); gui.handleClick((Player) event.getWhoClicked(), event.getSlot()); } } @EventHandler(priority = EventPriority.MONITOR) public void onInventoryClose(InventoryCloseEvent event) { if (GUI.ignoreClosing.contains(event.getPlayer().getUniqueId())) { GUI.ignoreClosing.remove(event.getPlayer().getUniqueId()); return; } if (GUI.guis.containsKey(event.getPlayer().getUniqueId())) GUI.guis.remove(event.getPlayer().getUniqueId()); if (GUI.pageTracker.containsKey(event.getPlayer().getUniqueId())) GUI.pageTracker.remove(event.getPlayer().getUniqueId()); } @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(PlayerQuitEvent event) { if (GUI.ignoreClosing.contains(event.getPlayer().getUniqueId())) GUI.ignoreClosing.remove(event.getPlayer().getUniqueId()); if (GUI.guis.containsKey(event.getPlayer().getUniqueId())) GUI.guis.remove(event.getPlayer().getUniqueId()); if (GUI.pageTracker.containsKey(event.getPlayer().getUniqueId())) GUI.pageTracker.remove(event.getPlayer().getUniqueId()); } }