Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. package net.shin1gamix.xpshop.listeners;
  2.  
  3. import java.util.UUID;
  4.  
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.Listener;
  8. import org.bukkit.event.inventory.InventoryClickEvent;
  9.  
  10. import net.shin1gamix.xpshop.Core;
  11. import net.shin1gamix.xpshop.PlayerManager;
  12. import net.shin1gamix.xpshop.objects.ShopItem;
  13. import net.shin1gamix.xpshop.objects.ShopItemCharge;
  14.  
  15. public class InventoryHandler implements Listener {
  16.  
  17. private final Core core;
  18.  
  19. public InventoryHandler(final Core core) {
  20. this.core = core;
  21. }
  22.  
  23. @EventHandler
  24. private void onClick(final InventoryClickEvent e) {
  25.  
  26. final Player player = (Player) e.getWhoClicked();
  27. final UUID id = player.getUniqueId();
  28.  
  29. if (!this.core.getPlayerManagerMap().containsKey(id)) {
  30. return;
  31. }
  32.  
  33. final PlayerManager invman = this.core.getPlayerManagerMap().get(id);
  34. if (!e.getInventory().equals(invman.getInventory())) {
  35. return;
  36. }
  37.  
  38. if (e.getCurrentItem() == null) {
  39. return;
  40. }
  41.  
  42. e.setCancelled(true);
  43.  
  44. final ShopItem item = getItemBySlot(invman, e.getRawSlot());
  45.  
  46. if (item == null) {
  47. return;
  48. }
  49.  
  50. if (item instanceof ShopItemCharge) {
  51. ((ShopItemCharge) item).executeTask();
  52. }
  53. }
  54.  
  55. private ShopItem getItemBySlot(final PlayerManager invman, final int slot) {
  56. for (final ShopItem item : invman.getItems()) {
  57. for (final int slots : item.getSlots()) {
  58. if (slots - 1 == slot) {
  59. return item;
  60. }
  61. }
  62. }
  63. return null;
  64.  
  65. }
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement