Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.ench.main;
- import de.tr7zw.nbtapi.NBTCompound;
- import de.tr7zw.nbtapi.NBTItem;
- import me.ench.items.Hammers;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.ClickType;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.event.inventory.InventoryOpenEvent;
- import org.bukkit.event.player.PlayerPickupItemEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.Plugin;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Objects;
- import static me.ench.main.RefineryUtils.isBook;
- import static me.ench.main.RefineryUtils.isHammer;
- public class RefineryInventory implements Listener {
- private Inventory refineryInventory;
- private int ableToRefine = 0;
- boolean hasHammer = false;
- boolean hasBook = false;
- private ItemStack hammer;
- private ItemStack book;
- ItemStack buttonItem;
- ItemMeta buttonMeta;
- ItemStack borderItem;
- ItemMeta bordermeta;
- NBTItem hammerNBT;
- NBTCompound hammerCompound;
- NBTItem bookNBT;
- NBTCompound bookCompound;
- Plugin plugin = Bukkit.getPluginManager().getPlugin("Enchant Refinery");
- @EventHandler
- public void invClick(InventoryClickEvent event) {
- Player player = (Player) event.getWhoClicked();
- Inventory i = event.getClickedInventory();
- if(RefineryUtils.isRefineryOpen.get(player.getUniqueId().toString()).equals(Boolean.TRUE)){
- ItemStack item = i.getItem(event.getSlot());
- if(event.getClick().equals(ClickType.DOUBLE_CLICK) || event.getClick().equals(ClickType.LEFT) || event.getClick().equals(ClickType.MIDDLE) || event.getClick().equals(ClickType.RIGHT)) {
- if (Objects.requireNonNull(i.getTitle()).equalsIgnoreCase("Enchant Refinery")) {
- if(i.equals(refineryInventory)) player.sendMessage("not equal");
- else player.sendMessage("equal");
- event.getWhoClicked().sendMessage("title check");
- if (!hasBook && event.getSlot() == 14) {
- player.sendMessage("Player was clicking an epty slot, cancelling/returnning");
- event.setCancelled(true);
- return;
- } else if (!hasHammer && event.getSlot() == 12) {
- player.sendMessage("Player was clicking an epty slot, cancelling/returnning");
- event.setCancelled(true);
- return;
- } else if (event.getSlot() == 12 && hasHammer) {
- player.getInventory().addItem(item);
- player.sendMessage("addiong hammer");
- hammer = null;
- hasHammer = false;
- refineryInventory.setItem(12, new ItemStack(Material.AIR));
- event.setCancelled(true);
- i.setItem(event.getSlot(), new ItemStack(Material.AIR));
- openRefineryInventory(player);
- } else if (event.getSlot() == 14 && hasBook) {
- player.sendMessage("adding book");
- player.getInventory().addItem(item);
- refineryInventory.setItem(14, new ItemStack(Material.AIR));
- hasBook = false;
- event.setCancelled(true);
- i.setItem(event.getSlot(), new ItemStack(Material.AIR));
- openRefineryInventory(player);
- } else {
- event.setCancelled(true);
- return;
- }
- } else {
- if (!isHammer(item)) {
- if (isBook(item)) {
- player.sendMessage("was book");
- if (!hasBook) {
- player.sendMessage("setting book");
- book = item;
- hasBook = true;
- event.setCancelled(true);
- i.setItem(event.getSlot(), new ItemStack(Material.AIR));
- } else {
- event.setCancelled(true);
- return;
- }
- } else {
- event.setCancelled(true);
- return;
- }
- } else {
- player.sendMessage("was hammer");
- if (!hasHammer) {
- Bukkit.getLogger().info("" + item);
- player.sendMessage("setting hammer");
- hasHammer = true;
- hammer = item;
- event.setCancelled(true);
- i.setItem(event.getSlot(), new ItemStack(Material.AIR));
- } else {
- event.setCancelled(true);
- return;
- }
- }
- openRefineryInventory(player);
- player.sendMessage("inv opened");
- }
- }else{
- event.setCancelled(true);
- return;
- }
- }else{
- return;
- }
- }
- @EventHandler
- public void DCset(PlayerQuitEvent event) {
- RefineryUtils.isRefineryOpen.put(event.getPlayer().getUniqueId().toString(), false);
- }
- @EventHandler
- public void noPickup(PlayerPickupItemEvent e) {
- if(RefineryUtils.isRefineryOpen.get(e.getPlayer().getUniqueId().toString())) {
- e.setCancelled(true);
- return;
- }else{
- return;
- }
- }
- @EventHandler
- public void InventoryClose(InventoryCloseEvent event) {
- if (event.getInventory().getName().equalsIgnoreCase("Enchant Refinery")) {
- RefineryUtils.isRefineryOpen.put(event.getPlayer().getUniqueId().toString(), false);
- if(hasHammer) {
- event.getPlayer().getInventory().addItem(event.getInventory().getItem(12));
- ableToRefine = 0;
- hasHammer = false;
- hammer = null;
- }
- if(hasBook) {
- event.getPlayer().getInventory().addItem(event.getInventory().getItem(14));
- ableToRefine = 0;
- hasBook = false;
- book = null;
- }
- }
- }
- public void openRefineryInventory(Player p) {
- RefineryUtils.isRefineryOpen.put(p.getUniqueId().toString(), true);
- if (ableToRefine == 0) {
- buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
- buttonMeta = buttonItem.getItemMeta();
- buttonMeta.setDisplayName(ChatColor.RED + "Can't refine!");
- ArrayList<String> buttonLore = new ArrayList<String>();
- buttonLore.add(ChatColor.RED + "Please put your hammer to the slot on the left, and");
- buttonLore.add(ChatColor.RED + "your book that you would like to refine on the right.");
- buttonMeta.setLore(buttonLore);
- buttonItem.setItemMeta(buttonMeta);
- borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
- bordermeta = borderItem.getItemMeta();
- bordermeta.setDisplayName(" ");
- borderItem.setItemMeta(bordermeta);
- }
- if (ableToRefine == 1) {
- hammerNBT = new NBTItem(hammer);
- hammerCompound = hammerNBT.getCompound("CustomAttributes");
- Integer downchance = hammerCompound.getInteger("DOWNGRADE_CHANCE");
- Integer upchance = 100 - downchance;
- bookNBT = new NBTItem(book);
- bookCompound = bookNBT.getCompound("CustomAttributes");
- Integer baselevel = bookCompound.getInteger("BASE_LEVEL");
- Integer maxlevel = hammerCompound.getInteger("MAX_LEVELS_TO_UPGRADE") + baselevel;
- buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
- buttonMeta = buttonItem.getItemMeta();
- buttonMeta.setDisplayName(ChatColor.GREEN + "Click to refine!");
- ArrayList<String> buttonLore = new ArrayList<String>();
- buttonLore.add(ChatColor.YELLOW + "Details:");
- buttonLore.add(ChatColor.YELLOW + "Chance to be downgraded: " + ChatColor.BLUE + downchance.toString() + "%");
- buttonLore.add(ChatColor.YELLOW + "Chance to be upgraded: " + ChatColor.BLUE + upchance + "%");
- buttonLore.add(ChatColor.YELLOW + "Max level to go up to: " + ChatColor.BLUE + maxlevel);
- buttonMeta.setLore(buttonLore);
- buttonItem.setItemMeta(buttonMeta);
- borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
- bordermeta = borderItem.getItemMeta();
- bordermeta.setDisplayName(" ");
- borderItem.setItemMeta(bordermeta);
- }
- if (ableToRefine == 2) {
- buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
- buttonMeta = buttonItem.getItemMeta();
- buttonMeta.setDisplayName(ChatColor.RED + "Use a better hammer!");
- ArrayList<String> buttonLore = new ArrayList<String>();
- buttonLore.add(ChatColor.RED + "It appears that your book has reached the max level for your hammer.");
- buttonLore.add(ChatColor.RED + "Please try again with a better hammer.");
- buttonMeta.setLore(buttonLore);
- buttonItem.setItemMeta(buttonMeta);
- borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
- bordermeta = borderItem.getItemMeta();
- bordermeta.setDisplayName(" ");
- borderItem.setItemMeta(bordermeta);
- }
- if (ableToRefine == 3) {
- buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
- buttonMeta = buttonItem.getItemMeta();
- buttonMeta.setDisplayName(ChatColor.YELLOW + "Maxed!");
- ArrayList<String> buttonLore = new ArrayList<String>();
- buttonLore.add(ChatColor.YELLOW + "This book is the max level (8)! If you would like to try to");
- buttonLore.add(ChatColor.YELLOW + "get a special enchant, please use a special hammer.");
- buttonMeta.setLore(buttonLore);
- borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
- bordermeta = borderItem.getItemMeta();
- bordermeta.setDisplayName(" ");
- borderItem.setItemMeta(bordermeta);
- }
- if (ableToRefine == 4) {
- buttonItem = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
- buttonMeta = buttonItem.getItemMeta();
- buttonMeta.setDisplayName(ChatColor.YELLOW + "Why are you here?!");
- ArrayList<String> buttonLore = new ArrayList<String>();
- buttonLore.add(ChatColor.YELLOW + "This book is already maxed, WITH a special enchant!");
- buttonLore.add(ChatColor.YELLOW + "If you really want to use this hammer, go get a different book!");
- buttonMeta.setLore(buttonLore);
- borderItem = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
- bordermeta = borderItem.getItemMeta();
- bordermeta.setDisplayName(" ");
- borderItem.setItemMeta(bordermeta);
- }
- refineryInventory = plugin.getServer().createInventory(p, 36, "Enchant Refinery");
- for (int inc = 0; inc<36; inc++) {
- ItemStack empty = new ItemStack( Material.STAINED_GLASS_PANE, 1, (short) 7);
- ItemMeta em = empty.getItemMeta();
- em.setDisplayName(" ");
- empty.setItemMeta(em);
- refineryInventory.setItem(inc, empty);
- }
- if(hasHammer) {
- refineryInventory.setItem(12, hammer);
- p.sendMessage("hasHammer, setting hammer");
- p.sendMessage(hammer.toString());
- }else {
- refineryInventory.setItem(12, new ItemStack(Material.AIR));
- p.sendMessage("doesn't have hammer setting air");
- }
- if (hasBook) {
- refineryInventory.setItem(14, book);
- p.sendMessage("hasBook, setting book");
- p.sendMessage(book.toString());
- }else {
- refineryInventory.setItem(14, new ItemStack(Material.AIR));
- p.sendMessage("doesn't have book setting air");
- }
- refineryInventory.setItem(22, buttonItem);
- for (int in = 0;in<36;in+=9){
- refineryInventory.setItem(in, borderItem);
- }
- for (int in = 8; in<36;in+=9) {
- refineryInventory.setItem(in, borderItem);
- }
- refineryInventory.setItem(26, borderItem);
- p.openInventory(refineryInventory);
- RefineryUtils.isRefineryOpen.put(p.getUniqueId().toString(), true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment