danik159

Untitled

Nov 30th, 2020
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. package me.chickenstyle.menuapi;
  2.  
  3. import java.util.UUID;
  4. import java.util.concurrent.ConcurrentHashMap;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.block.Action;
  11. import org.bukkit.event.entity.PlayerDeathEvent;
  12. import org.bukkit.event.inventory.InventoryClickEvent;
  13. import org.bukkit.event.inventory.InventoryCloseEvent;
  14. import org.bukkit.event.player.PlayerInteractEvent;
  15. import org.bukkit.event.player.PlayerQuitEvent;
  16.  
  17. import me.chickenstyle.enchantments.Main;
  18. import me.chickenstyle.enchantments.Utils;
  19.  
  20. public class MenuHandler {
  21.  
  22. private ConcurrentHashMap<UUID, Menu> openMenus = new ConcurrentHashMap<>();
  23.  
  24. public void openMenu(Player player,Menu menu) {
  25. openMenus.put(player.getUniqueId(), menu);
  26. menu.open(player);
  27. }
  28.  
  29. public void closeMenu(Player player) {
  30. openMenus.remove(player.getUniqueId());
  31. player.closeInventory();
  32. }
  33.  
  34. public boolean openedMenu(Player player) {
  35. if (!openMenus.isEmpty()) {
  36. for (UUID uuid:openMenus.keySet()) {
  37. System.out.println(uuid);
  38. if (player.getUniqueId().equals(uuid)) {
  39. return true;
  40. }
  41. }
  42. }
  43. return false;
  44.  
  45. }
  46.  
  47. public Menu getMenu(Player player) {
  48. return openMenus.get(player.getUniqueId());
  49. }
  50.  
  51. public void closeAll() {
  52. for (UUID uuid:openMenus.keySet()) {
  53. Player player = Bukkit.getPlayer(uuid);
  54. player.closeInventory();
  55. }
  56.  
  57. openMenus.clear();
  58. }
  59.  
  60. public Listener getListener() {
  61. return new Listener() {
  62.  
  63. @EventHandler
  64. public void onPlayerInteract(PlayerInteractEvent e) {
  65. if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
  66.  
  67. if (e.getClickedBlock() == null) return;
  68.  
  69. if (e.getClickedBlock().getType().equals(Utils.getEnchantingTableMaterial())) {
  70.  
  71. new EnchantingTableMenu(e.getPlayer());
  72. e.setCancelled(true);
  73. }
  74. }
  75.  
  76. }
  77.  
  78. @EventHandler
  79. public void onInventoryClick(InventoryClickEvent e) {
  80. if (e.getClickedInventory() == null) return;
  81.  
  82. Player player = (Player) e.getWhoClicked();
  83.  
  84. if (!openedMenu(player)) return;
  85.  
  86. Menu menu = openMenus.get(player.getUniqueId());
  87. if (e.getClickedInventory().equals(e.getView().getBottomInventory())) return;
  88.  
  89. if (menu.performClick(menu,player, e.getSlot(), e.getClick())) {
  90. e.setCancelled(true);
  91. }
  92.  
  93. }
  94.  
  95. @EventHandler
  96. public void onInventoryClose(InventoryCloseEvent e) {
  97. Player player = (Player) e.getPlayer();
  98. if (openedMenu((Player)e.getPlayer())) Main.getMenuHandler().closeMenu(player);
  99. }
  100.  
  101. @EventHandler
  102. public void onPlayerLeave(PlayerQuitEvent e) {
  103. if (openedMenu((Player)e.getPlayer())) Main.getMenuHandler().closeMenu(e.getPlayer());
  104. }
  105.  
  106. @EventHandler
  107. public void onPlayerDeath(PlayerDeathEvent e) {
  108. if (openedMenu(e.getEntity())) Main.getMenuHandler().closeMenu(e.getEntity());
  109. }
  110. };
  111. }
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment