Guest User

heres my class

a guest
Jul 12th, 2020
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.52 KB | None | 0 0
  1. package me.ench.main;
  2.  
  3. import de.tr7zw.nbtapi.NBTCompound;
  4. import de.tr7zw.nbtapi.NBTItem;
  5. import me.ench.items.Hammers;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.Material;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.inventory.ClickType;
  13. import org.bukkit.event.inventory.InventoryClickEvent;
  14. import org.bukkit.event.inventory.InventoryCloseEvent;
  15. import org.bukkit.event.inventory.InventoryOpenEvent;
  16. import org.bukkit.event.player.PlayerPickupItemEvent;
  17. import org.bukkit.event.player.PlayerQuitEvent;
  18. import org.bukkit.inventory.Inventory;
  19. import org.bukkit.inventory.ItemStack;
  20. import org.bukkit.inventory.meta.ItemMeta;
  21. import org.bukkit.plugin.Plugin;
  22.  
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.Objects;
  26.  
  27. import static me.ench.main.RefineryUtils.isBook;
  28. import static me.ench.main.RefineryUtils.isHammer;
  29.  
  30. public class RefineryInventory implements Listener {
  31.     private Inventory refineryInventory;
  32.     private int ableToRefine = 0;
  33.     boolean hasHammer = false;
  34.     boolean hasBook = false;
  35.     private ItemStack hammer;
  36.     private ItemStack book;
  37.     ItemStack buttonItem;
  38.     ItemMeta buttonMeta;
  39.     ItemStack borderItem;
  40.     ItemMeta bordermeta;
  41.     NBTItem hammerNBT;
  42.     NBTCompound hammerCompound;
  43.     NBTItem bookNBT;
  44.     NBTCompound bookCompound;
  45.     Plugin plugin = Bukkit.getPluginManager().getPlugin("Enchant Refinery");
  46.     @EventHandler
  47.     public void invClick(InventoryClickEvent event) {
  48.         Player player = (Player) event.getWhoClicked();
  49.         Inventory i = event.getClickedInventory();
  50.         if(RefineryUtils.isRefineryOpen.get(player.getUniqueId().toString()).equals(Boolean.TRUE)){
  51.             ItemStack item = i.getItem(event.getSlot());
  52.             if(event.getClick().equals(ClickType.DOUBLE_CLICK) || event.getClick().equals(ClickType.LEFT) || event.getClick().equals(ClickType.MIDDLE) || event.getClick().equals(ClickType.RIGHT)) {
  53.                 if (Objects.requireNonNull(i.getTitle()).equalsIgnoreCase("Enchant Refinery")) {
  54.                     if(i.equals(refineryInventory)) player.sendMessage("not equal");
  55.                     else player.sendMessage("equal");
  56.                     event.getWhoClicked().sendMessage("title check");
  57.                     if (!hasBook && event.getSlot() == 14) {
  58.                         player.sendMessage("Player was clicking an epty slot, cancelling/returnning");
  59.                         event.setCancelled(true);
  60.                         return;
  61.                     } else if (!hasHammer && event.getSlot() == 12) {
  62.                         player.sendMessage("Player was clicking an epty slot, cancelling/returnning");
  63.                         event.setCancelled(true);
  64.                         return;
  65.  
  66.  
  67.                     } else if (event.getSlot() == 12 && hasHammer) {
  68.                         player.getInventory().addItem(item);
  69.                         player.sendMessage("addiong hammer");
  70.                         hammer = null;
  71.                         hasHammer = false;
  72.                         refineryInventory.setItem(12, new ItemStack(Material.AIR));
  73.                         event.setCancelled(true);
  74.                         i.setItem(event.getSlot(), new ItemStack(Material.AIR));
  75.                         openRefineryInventory(player);
  76.                     } else if (event.getSlot() == 14 && hasBook) {
  77.                         player.sendMessage("adding book");
  78.                         player.getInventory().addItem(item);
  79.                         refineryInventory.setItem(14, new ItemStack(Material.AIR));
  80.                         hasBook = false;
  81.                         event.setCancelled(true);
  82.                         i.setItem(event.getSlot(), new ItemStack(Material.AIR));
  83.                         openRefineryInventory(player);
  84.                     } else {
  85.                         event.setCancelled(true);
  86.                         return;
  87.                     }
  88.  
  89.  
  90.                 } else {
  91.                         if (!isHammer(item)) {
  92.  
  93.                             if (isBook(item)) {
  94.                                 player.sendMessage("was book");
  95.                                 if (!hasBook) {
  96.                                     player.sendMessage("setting book");
  97.                                     book = item;
  98.                                     hasBook = true;
  99.                                     event.setCancelled(true);
  100.                                     i.setItem(event.getSlot(), new ItemStack(Material.AIR));
  101.                                 } else {
  102.                                     event.setCancelled(true);
  103.                                     return;
  104.                                 }
  105.                             } else {
  106.                                 event.setCancelled(true);
  107.                                 return;
  108.                             }
  109.                         } else {
  110.                             player.sendMessage("was hammer");
  111.                             if (!hasHammer) {
  112.                                 Bukkit.getLogger().info("" + item);
  113.                                 player.sendMessage("setting hammer");
  114.                                 hasHammer = true;
  115.                                 hammer = item;
  116.                                 event.setCancelled(true);
  117.                                 i.setItem(event.getSlot(), new ItemStack(Material.AIR));
  118.                             } else {
  119.                                 event.setCancelled(true);
  120.                                 return;
  121.                             }
  122.  
  123.                         }
  124.                         openRefineryInventory(player);
  125.                         player.sendMessage("inv opened");
  126.  
  127.                 }
  128.             }else{
  129.                 event.setCancelled(true);
  130.                 return;
  131.             }
  132.  
  133.         }else{
  134.             return;
  135.         }
  136.  
  137.     }
  138.     @EventHandler
  139.     public void DCset(PlayerQuitEvent event) {
  140.         RefineryUtils.isRefineryOpen.put(event.getPlayer().getUniqueId().toString(), false);
  141.     }
  142.     @EventHandler
  143.     public void noPickup(PlayerPickupItemEvent e) {
  144.         if(RefineryUtils.isRefineryOpen.get(e.getPlayer().getUniqueId().toString())) {
  145.             e.setCancelled(true);
  146.             return;
  147.         }else{
  148.             return;
  149.         }
  150.     }
  151.  
  152.  
  153.     @EventHandler
  154.     public void InventoryClose(InventoryCloseEvent event) {
  155.         if (event.getInventory().getName().equalsIgnoreCase("Enchant Refinery")) {
  156.             RefineryUtils.isRefineryOpen.put(event.getPlayer().getUniqueId().toString(), false);
  157.             if(hasHammer) {
  158.                 event.getPlayer().getInventory().addItem(event.getInventory().getItem(12));
  159.                 ableToRefine = 0;
  160.                 hasHammer = false;
  161.                 hammer = null;
  162.             }
  163.  
  164.             if(hasBook) {
  165.                 event.getPlayer().getInventory().addItem(event.getInventory().getItem(14));
  166.                 ableToRefine = 0;
  167.                 hasBook = false;
  168.                 book = null;
  169.             }
  170.  
  171.         }
  172.     }
  173.     public void openRefineryInventory(Player p) {
  174.         RefineryUtils.isRefineryOpen.put(p.getUniqueId().toString(), true);
  175.         if (ableToRefine == 0) {
  176.             buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
  177.             buttonMeta = buttonItem.getItemMeta();
  178.             buttonMeta.setDisplayName(ChatColor.RED + "Can't refine!");
  179.             ArrayList<String> buttonLore = new ArrayList<String>();
  180.             buttonLore.add(ChatColor.RED + "Please put your hammer to the slot on the left, and");
  181.             buttonLore.add(ChatColor.RED + "your book that you would like to refine on the right.");
  182.             buttonMeta.setLore(buttonLore);
  183.             buttonItem.setItemMeta(buttonMeta);
  184.             borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  185.             bordermeta = borderItem.getItemMeta();
  186.             bordermeta.setDisplayName(" ");
  187.             borderItem.setItemMeta(bordermeta);
  188.         }
  189.         if (ableToRefine == 1) {
  190.             hammerNBT = new NBTItem(hammer);
  191.             hammerCompound = hammerNBT.getCompound("CustomAttributes");
  192.             Integer downchance = hammerCompound.getInteger("DOWNGRADE_CHANCE");
  193.             Integer upchance = 100 - downchance;
  194.             bookNBT = new NBTItem(book);
  195.             bookCompound = bookNBT.getCompound("CustomAttributes");
  196.             Integer baselevel = bookCompound.getInteger("BASE_LEVEL");
  197.             Integer maxlevel = hammerCompound.getInteger("MAX_LEVELS_TO_UPGRADE") + baselevel;
  198.             buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
  199.             buttonMeta = buttonItem.getItemMeta();
  200.             buttonMeta.setDisplayName(ChatColor.GREEN + "Click to refine!");
  201.             ArrayList<String> buttonLore = new ArrayList<String>();
  202.             buttonLore.add(ChatColor.YELLOW + "Details:");
  203.             buttonLore.add(ChatColor.YELLOW + "Chance to be downgraded: " + ChatColor.BLUE + downchance.toString() + "%");
  204.             buttonLore.add(ChatColor.YELLOW + "Chance to be upgraded: " + ChatColor.BLUE + upchance + "%");
  205.             buttonLore.add(ChatColor.YELLOW + "Max level to go up to: " + ChatColor.BLUE + maxlevel);
  206.             buttonMeta.setLore(buttonLore);
  207.             buttonItem.setItemMeta(buttonMeta);
  208.  
  209.             borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
  210.             bordermeta = borderItem.getItemMeta();
  211.             bordermeta.setDisplayName(" ");
  212.             borderItem.setItemMeta(bordermeta);
  213.         }
  214.         if (ableToRefine == 2) {
  215.             buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
  216.             buttonMeta = buttonItem.getItemMeta();
  217.             buttonMeta.setDisplayName(ChatColor.RED + "Use a better hammer!");
  218.             ArrayList<String> buttonLore = new ArrayList<String>();
  219.             buttonLore.add(ChatColor.RED + "It appears that your book has reached the max level for your hammer.");
  220.             buttonLore.add(ChatColor.RED + "Please try again with a better hammer.");
  221.             buttonMeta.setLore(buttonLore);
  222.             buttonItem.setItemMeta(buttonMeta);
  223.  
  224.             borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  225.             bordermeta = borderItem.getItemMeta();
  226.             bordermeta.setDisplayName(" ");
  227.             borderItem.setItemMeta(bordermeta);
  228.         }
  229.         if (ableToRefine == 3) {
  230.             buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
  231.             buttonMeta = buttonItem.getItemMeta();
  232.             buttonMeta.setDisplayName(ChatColor.YELLOW + "Maxed!");
  233.             ArrayList<String> buttonLore = new ArrayList<String>();
  234.             buttonLore.add(ChatColor.YELLOW + "This book is the max level (8)! If you would like to try to");
  235.             buttonLore.add(ChatColor.YELLOW + "get a special enchant, please use a special hammer.");
  236.             buttonMeta.setLore(buttonLore);
  237.  
  238.             borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
  239.             bordermeta = borderItem.getItemMeta();
  240.             bordermeta.setDisplayName(" ");
  241.             borderItem.setItemMeta(bordermeta);
  242.         }
  243.         if (ableToRefine == 4) {
  244.             buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
  245.             buttonMeta = buttonItem.getItemMeta();
  246.             buttonMeta.setDisplayName(ChatColor.YELLOW + "Why are you here?!");
  247.             ArrayList<String> buttonLore = new ArrayList<String>();
  248.             buttonLore.add(ChatColor.YELLOW + "This book is already maxed, WITH a special enchant!");
  249.             buttonLore.add(ChatColor.YELLOW + "If you really want to use this hammer, go get a different book!");
  250.             buttonMeta.setLore(buttonLore);
  251.  
  252.             borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
  253.             bordermeta = borderItem.getItemMeta();
  254.             bordermeta.setDisplayName(" ");
  255.             borderItem.setItemMeta(bordermeta);
  256.         }
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.         refineryInventory = plugin.getServer().createInventory(p, 36, "Enchant Refinery");
  264.         for (int inc = 0; inc<36; inc++) {
  265.             ItemStack empty = new ItemStack( Material.STAINED_GLASS_PANE, 1, (short) 7);
  266.             ItemMeta em = empty.getItemMeta();
  267.             em.setDisplayName(" ");
  268.             empty.setItemMeta(em);
  269.             refineryInventory.setItem(inc, empty);
  270.         }
  271.         if(hasHammer) {
  272.             refineryInventory.setItem(12, hammer);
  273.             p.sendMessage("hasHammer, setting hammer");
  274.             p.sendMessage(hammer.toString());
  275.         }else {
  276.             refineryInventory.setItem(12, new ItemStack(Material.AIR));
  277.             p.sendMessage("doesn't have hammer setting air");
  278.         }
  279.         if (hasBook) {
  280.             refineryInventory.setItem(14, book);
  281.             p.sendMessage("hasBook, setting book");
  282.             p.sendMessage(book.toString());
  283.         }else {
  284.             refineryInventory.setItem(14, new ItemStack(Material.AIR));
  285.             p.sendMessage("doesn't have book setting air");
  286.         }
  287.  
  288.  
  289.         refineryInventory.setItem(22, buttonItem);
  290.  
  291.         for (int in = 0;in<36;in+=9){
  292.             refineryInventory.setItem(in, borderItem);
  293.         }
  294.         for (int in = 8; in<36;in+=9) {
  295.             refineryInventory.setItem(in, borderItem);
  296.         }
  297.         refineryInventory.setItem(26, borderItem);
  298.  
  299.         p.openInventory(refineryInventory);
  300.         RefineryUtils.isRefineryOpen.put(p.getUniqueId().toString(), true);
  301.     }
  302.  
  303.  
  304. }
Advertisement
Add Comment
Please, Sign In to add comment