Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.chickenstyle.menuapi;
- import java.util.UUID;
- import java.util.concurrent.ConcurrentHashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import me.chickenstyle.enchantments.Main;
- import me.chickenstyle.enchantments.Utils;
- public class MenuHandler {
- private ConcurrentHashMap<UUID, Menu> openMenus = new ConcurrentHashMap<>();
- public void openMenu(Player player,Menu menu) {
- openMenus.put(player.getUniqueId(), menu);
- menu.open(player);
- }
- public void closeMenu(Player player) {
- openMenus.remove(player.getUniqueId());
- player.closeInventory();
- }
- public boolean openedMenu(Player player) {
- if (!openMenus.isEmpty()) {
- for (UUID uuid:openMenus.keySet()) {
- System.out.println(uuid);
- if (player.getUniqueId().equals(uuid)) {
- return true;
- }
- }
- }
- return false;
- }
- public Menu getMenu(Player player) {
- return openMenus.get(player.getUniqueId());
- }
- public void closeAll() {
- for (UUID uuid:openMenus.keySet()) {
- Player player = Bukkit.getPlayer(uuid);
- player.closeInventory();
- }
- openMenus.clear();
- }
- public Listener getListener() {
- return new Listener() {
- @EventHandler
- public void onPlayerInteract(PlayerInteractEvent e) {
- if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
- if (e.getClickedBlock() == null) return;
- if (e.getClickedBlock().getType().equals(Utils.getEnchantingTableMaterial())) {
- new EnchantingTableMenu(e.getPlayer());
- e.setCancelled(true);
- }
- }
- }
- @EventHandler
- public void onInventoryClick(InventoryClickEvent e) {
- if (e.getClickedInventory() == null) return;
- Player player = (Player) e.getWhoClicked();
- if (!openedMenu(player)) return;
- Menu menu = openMenus.get(player.getUniqueId());
- if (e.getClickedInventory().equals(e.getView().getBottomInventory())) return;
- if (menu.performClick(menu,player, e.getSlot(), e.getClick())) {
- e.setCancelled(true);
- }
- }
- @EventHandler
- public void onInventoryClose(InventoryCloseEvent e) {
- Player player = (Player) e.getPlayer();
- if (openedMenu((Player)e.getPlayer())) Main.getMenuHandler().closeMenu(player);
- }
- @EventHandler
- public void onPlayerLeave(PlayerQuitEvent e) {
- if (openedMenu((Player)e.getPlayer())) Main.getMenuHandler().closeMenu(e.getPlayer());
- }
- @EventHandler
- public void onPlayerDeath(PlayerDeathEvent e) {
- if (openedMenu(e.getEntity())) Main.getMenuHandler().closeMenu(e.getEntity());
- }
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment