SHARE
TWEET

Untitled

a guest Jun 19th, 2019 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.asylumdevs.cellmines.manager;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Set;
  8. import java.util.UUID;
  9.  
  10. import org.apache.commons.lang3.ArrayUtils;
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.Location;
  14. import org.bukkit.Material;
  15. import org.bukkit.block.Block;
  16. import org.bukkit.configuration.file.FileConfiguration;
  17. import org.bukkit.configuration.file.YamlConfiguration;
  18. import org.bukkit.entity.Player;
  19. import org.bukkit.event.inventory.ClickType;
  20. import org.bukkit.event.inventory.InventoryType;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.meta.SkullMeta;
  23.  
  24. import com.asylumdevs.cellmines.CellMines;
  25. import com.asylumdevs.cellmines.inventory.Inventory;
  26. import com.asylumdevs.cellmines.inventory.ItemListener;
  27. import com.asylumdevs.cellmines.inventory.api.InventoryAPI;
  28.  
  29. import me.goodandevil.skyblock.SkyBlock;
  30. import me.goodandevil.skyblock.api.SkyBlockAPI;
  31. import me.goodandevil.skyblock.api.island.Island;
  32. import me.goodandevil.skyblock.api.island.IslandManager;
  33. import me.goodandevil.skyblock.api.island.IslandRole;
  34. import me.goodandevil.skyblock.world.WorldManager;
  35. import me.realized.tokenmanager.api.TokenManager;
  36.  
  37. public class InventoryManager {
  38.  
  39.     public void openConfirmation(String blocktype, Player p, String tier, String tieruuid, Block block, Location first,
  40.             Island island) {
  41.         Inventory inv = InventoryAPI.createInventory1(ChatColor.translateAlternateColorCodes('&', "Confirmation"), 54);
  42.  
  43.         int[] activate = { 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29, 30, 36, 37, 38, 39, 45, 46, 47, 48 };
  44.         int[] middle = { 4, 13, 22, 31, 40, 49 };
  45.         int[] deactivate = { 5, 6, 7, 8, 14, 15, 16, 17, 23, 24, 25, 26, 32, 33, 34, 35, 41, 42, 43, 44, 50, 51, 52,
  46.                 53 };
  47.  
  48.         for (int i : activate) {
  49.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
  50.             inv.setSlot(i,
  51.                     InventoryAPI.createItem("&a&lACTIVATE CELL MINE",
  52.                             Arrays.asList("", "&7Click to activate your cell mine!", ""), item, null, 1),
  53.                     new ItemListener() {
  54.                         @SuppressWarnings("deprecation")
  55.                         public void onItemClick(Player p, ClickType click) {
  56.                             File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  57.                             CellMines.getAPI().activateCellMine(p, tier, tieruuid, first, island);
  58.                             p.getInventory().setItemInHand(null);
  59.                             p.getOpenInventory().close();
  60.                             if (!tierdata.exists()) {
  61.                                 if (tier.equalsIgnoreCase("Cell")) {
  62.                                     CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  63.                                             CellMines.getSystem().getConfig()
  64.                                                     .getInt("cellmines." + tier + ".mineData.size"),
  65.                                             Material.valueOf(CellMines.getSystem().getConfig()
  66.                                                     .getString("cellmines." + tier + ".mineData.wallBlock")),
  67.                                             Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  68.                                                     .getString("cellmines." + tier + ".mineData.floorBlock")));
  69.                                 } else {
  70.                                     CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  71.                                             CellMines.getSystem().getConfig()
  72.                                                     .getInt("cellmines." + tier + ".mineData.size"),
  73.                                             Material.valueOf(CellMines.getSystem().getConfig()
  74.                                                     .getString("cellmines." + tier + ".mineData.wallBlock")),
  75.                                             Material.LAPIS_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  76.                                                     .getString("cellmines." + tier + ".mineData.floorBlock")));
  77.                                 }
  78.                             } else if (tierdata.exists()) {
  79.                                 FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  80.                                 int size = 0;
  81.                                 if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  82.                                     size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  83.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  84.                                     size = 15;
  85.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  86.                                     size = 20;
  87.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  88.                                     size = 25;
  89.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  90.                                     size = 30;
  91.                                 }
  92.                                 if (tier.equalsIgnoreCase("Cell")) {
  93.                                     if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  94.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  95.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  96.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  97.                                                 Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  98.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  99.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  100.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  101.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  102.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  103.                                                 Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  104.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  105.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  106.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  107.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  108.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  109.                                                 Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  110.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  111.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  112.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  113.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  114.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  115.                                                 Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  116.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  117.                                     }
  118.                                 } else {
  119.                                     CellMines.getSystem().getGenerator().generate(blocktype, block, first,
  120.                                             CellMines.getSystem().getConfig()
  121.                                                     .getInt("cellmines." + tier + ".mineData.size"),
  122.                                             Material.valueOf(CellMines.getSystem().getConfig()
  123.                                                     .getString("cellmines." + tier + ".mineData.wallBlock")),
  124.                                             Material.LAPIS_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  125.                                                     .getString("cellmines." + tier + ".mineData.floorBlock")));
  126.                                 }
  127.                             }
  128.                         }
  129.                     });
  130.         }
  131.  
  132.         for (int i : middle) {
  133.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  134.             inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  135.                 public void onItemClick(Player p, ClickType click) {
  136.                     // Empty doesn't do anything when clicked.
  137.                 }
  138.             });
  139.         }
  140.  
  141.         for (int i : deactivate) {
  142.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  143.             inv.setSlot(i,
  144.                     InventoryAPI.createItem("&c&lDEACTIVATE CELL MINE",
  145.                             Arrays.asList("", "&7Click to deactivate your cell mine!", ""), item, null, 1),
  146.                     new ItemListener() {
  147.                         public void onItemClick(Player p, ClickType click) {
  148.                             p.getOpenInventory().close();
  149.                         }
  150.                     });
  151.         }
  152.  
  153.         inv.open(p);
  154.     }
  155.  
  156.     private String getProgress(int amount) {
  157.         switch (amount) {
  158.         case 0:
  159.             return "&c⬛⬛⬛⬛";
  160.         case 1:
  161.             return "&a⬛&c⬛⬛⬛";
  162.         case 2:
  163.             return "&a⬛⬛&c⬛⬛";
  164.         case 3:
  165.             return "&a⬛⬛⬛&c⬛";
  166.         case 4:
  167.             return "&a⬛⬛⬛⬛";
  168.         }
  169.         return "";
  170.     }
  171.  
  172.     private String getProgress1(int amount) {
  173.         switch (amount) {
  174.         case 0:
  175.             return "&c⬛⬛⬛";
  176.         case 1:
  177.             return "&a⬛&c⬛⬛";
  178.         case 2:
  179.             return "&a⬛⬛&c⬛";
  180.         case 3:
  181.             return "&a⬛⬛⬛";
  182.         }
  183.         return "";
  184.  
  185.     }
  186.  
  187.     @SuppressWarnings("deprecation")
  188.     public void openManagement(Player p, String tieruuid, Block block, Location first) {
  189.         Inventory inv = InventoryAPI
  190.                 .createInventory1(ChatColor.translateAlternateColorCodes('&', "Cell Mine Management"), 54);
  191.  
  192.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  193.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  194.  
  195.         int blockupgrade = cfg.getInt("tier.info.upgrades.block upgrade");
  196.         int sizeupgrade = cfg.getInt("tier.info.upgrades.size upgrade");
  197.         int resetupgrade = cfg.getInt("tier.info.upgrades.reset upgrade");
  198.         int potioneffectupgrade = cfg.getInt("tier.info.upgrades.potion upgrade");
  199.  
  200.         IslandManager islandManager = SkyBlockAPI.getIslandManager();
  201.        
  202.         Island island = islandManager.getIslandAtLocation(block.getLocation());
  203.  
  204.         if (island == null) {
  205.             return;
  206.         }
  207.        
  208.         inv.setSlot(4,
  209.                 InventoryAPI.createItem("&e&lCELL MINE MANAGEMENT",
  210.                         Arrays.asList("", "&fHere you can change and upgrade",
  211.                                 "&fdifferent aspects for your cell mine!"),
  212.                         Material.BOOK, null, 1),
  213.                 new ItemListener() {
  214.                     public void onItemClick(Player p, ClickType click) {
  215.  
  216.                     }
  217.                 });
  218.  
  219.         if (blockupgrade < 3) {
  220.             if (blockupgrade == 0) {
  221.                 inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  222.                         Arrays.asList("", "&fUpgrade the block value for your mine!",
  223.                                 "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  224.                                 "&7➥ &fCurrent upgrade: &e&lIron Block", "&7➥ &fNext upgrade: &e&lGold Block",
  225.                                 "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  226.                         Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  227.                             public void onItemClick(Player p, ClickType click) {
  228.                                 openBlockUpgrades(p, tieruuid, block, first);
  229.                             }
  230.                         });
  231.             } else if (blockupgrade == 1) {
  232.                 inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  233.                         Arrays.asList("", "&fUpgrade the block value for your mine!",
  234.                                 "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  235.                                 "&7➥ &fCurrent upgrade: &e&lGold Block", "&7➥ &fNext upgrade: &e&lDiamond Block",
  236.                                 "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  237.                         Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  238.                             public void onItemClick(Player p, ClickType click) {
  239.                                 openBlockUpgrades(p, tieruuid, block, first);
  240.                             }
  241.                         });
  242.             } else if (blockupgrade == 2) {
  243.                 inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  244.                         Arrays.asList("", "&fUpgrade the block value for your mine!",
  245.                                 "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  246.                                 "&7➥ &fCurrent upgrade: &e&lDiamond Block", "&7➥ &fNext upgrade: &e&lEmerald Block",
  247.                                 "&7➥ &fProgress: " + getProgress1(blockupgrade), "", "&7&nClick to upgrade!", ""),
  248.                         Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  249.                             public void onItemClick(Player p, ClickType click) {
  250.                                 openBlockUpgrades(p, tieruuid, block, first);
  251.                             }
  252.                         });
  253.             }
  254.         } else if (blockupgrade == 3) {
  255.             inv.setSlot(20, InventoryAPI.createItem("&b&lBLOCK UPGRADE",
  256.                     Arrays.asList("", "&fUpgrade the block value for your mine!",
  257.                             "&fHigher valued blocks equals more money!", "", "&b&lSTATUS:",
  258.                             "&7➥ &fNext upgrade: &e&lMaxed", "&7➥ &fProgress: " + getProgress1(blockupgrade), ""),
  259.                     Material.DIAMOND_PICKAXE, null, 1), new ItemListener() {
  260.                         public void onItemClick(Player p, ClickType click) {
  261.  
  262.                         }
  263.                     });
  264.         }
  265.  
  266.         if (sizeupgrade == 0) {
  267.             inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  268.                     Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  269.                             "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l10x10x10",
  270.                             "&7➥ &fNext upgrade: &e&l15x15x15", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  271.                             "", "&7&nClick to upgrade!", ""),
  272.                     Material.EMERALD_ORE, null, 1), new ItemListener() {
  273.                         public void onItemClick(Player p, ClickType click) {
  274.                             openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  275.                         }
  276.                     });
  277.         }  else if (sizeupgrade == 1) {
  278.             inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  279.                     Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  280.                             "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l15x15x15",
  281.                             "&7➥ &fNext upgrade: &e&l20x20x20", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  282.                             "", "&7&nClick to upgrade!", ""),
  283.                     Material.EMERALD_ORE, null, 1), new ItemListener() {
  284.                         public void onItemClick(Player p, ClickType click) {
  285.                             openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  286.                         }
  287.                     });
  288.         }  else if (sizeupgrade == 2) {
  289.             inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  290.                     Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  291.                             "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l20x20x20",
  292.                             "&7➥ &fNext upgrade: &e&l25x25x25", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  293.                             "", "&7&nClick to upgrade!", ""),
  294.                     Material.EMERALD_ORE, null, 1), new ItemListener() {
  295.                         public void onItemClick(Player p, ClickType click) {
  296.                             openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  297.                         }
  298.                     });
  299.         }  else if (sizeupgrade == 3) {
  300.             inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  301.                     Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  302.                             "", "&a&lSTATUS:", "&7➥ &fCurrent upgrade: &e&l25x25x25",
  303.                             "&7➥ &fNext upgrade: &e&l30x30x30", "&7➥ &fProgress: " + getProgress(sizeupgrade),
  304.                             "", "&7&nClick to upgrade!", ""),
  305.                     Material.EMERALD_ORE, null, 1), new ItemListener() {
  306.                         public void onItemClick(Player p, ClickType click) {
  307.                             openSizeUpgrades(p, tieruuid, block, first, islandManager, island);
  308.                         }
  309.                     });
  310.         } else if (sizeupgrade == 4) {
  311.             inv.setSlot(22, InventoryAPI.createItem("&a&lSIZE UPGRADE",
  312.                     Arrays.asList("", "&fUpgrade cell mine size to increase", "&fyour mining efficiency and rewards!",
  313.                             "", "&a&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  314.                             "&7➥ &fProgress: " + getProgress(sizeupgrade), ""),
  315.                     Material.EMERALD_ORE, null, 1), new ItemListener() {
  316.                         public void onItemClick(Player p, ClickType click) {
  317.  
  318.                         }
  319.                     });
  320.         }
  321.  
  322.         if (resetupgrade == 0) {
  323.             inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  324.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  325.                             "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  326.                             "&7➥ &fCurrent upgrade: &e&lManual", "&7➥ &fNext upgrade: &e&lPercent (10%)",
  327.                             "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  328.                     Material.WATCH, null, 1), new ItemListener() {
  329.                         public void onItemClick(Player p, ClickType click) {
  330.                             openResetUpgrades(p, tieruuid, block, first);
  331.                         }
  332.                     });
  333.         } else if (resetupgrade == 1) {
  334.             inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  335.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  336.                             "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  337.                             "&7➥ &fCurrent upgrade: &e&lPercent (10%)", "&7➥ &fNext upgrade: &e&lPercent (20%)",
  338.                             "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  339.                     Material.WATCH, null, 1), new ItemListener() {
  340.                         public void onItemClick(Player p, ClickType click) {
  341.                             openResetUpgrades(p, tieruuid, block, first);
  342.                         }
  343.                     });
  344.         } else if (resetupgrade == 2) {
  345.             inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  346.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  347.                             "&fconstant uninterrupted mining!", "", "&6&lSTATUS:",
  348.                             "&7➥ &fCurrent upgrade: &e&lPercent (20%)", "&7➥ &fNext upgrade: &e&lPercent (30%)",
  349.                             "&7➥ &fProgress: " + getProgress1(resetupgrade), "", "&7&nClick to upgrade!", ""),
  350.                     Material.WATCH, null, 1), new ItemListener() {
  351.                         public void onItemClick(Player p, ClickType click) {
  352.                             openResetUpgrades(p, tieruuid, block, first);
  353.                         }
  354.                     });
  355.         } else if (resetupgrade == 3) {
  356.             inv.setSlot(24, InventoryAPI.createItem("&6&lRESET UPGRADE",
  357.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  358.                             "&fconstant uninterrupted mining!", "", "&6&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  359.                             "&7➥ &fProgress: " + getProgress1(resetupgrade), ""),
  360.                     Material.WATCH, null, 1), new ItemListener() {
  361.                         public void onItemClick(Player p, ClickType click) {
  362.  
  363.                         }
  364.                     });
  365.         }
  366.  
  367.         ItemStack owner = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  368.         SkullMeta ownerskullmeta = (SkullMeta) owner.getItemMeta();
  369.         ownerskullmeta.setOwner(p.getName());
  370.         owner.setItemMeta(ownerskullmeta);
  371.  
  372.         inv.setSlot(38,
  373.                 InventoryAPI.createItem("&3&lTEAM MANAGEMENT",
  374.                         Arrays.asList("",
  375.                                 "&7Current players: &e&l" + cfg.getStringList("tier.info.members").size()
  376.                                         + " &7of &e&l14",
  377.                                 "&7Redeem tokens: &e&l" + cfg.getInt("tier.info.tokens"), ""),
  378.                         owner, null, 1),
  379.                 new ItemListener() {
  380.                     public void onItemClick(Player p, ClickType click) {
  381.                         openTeamManagement(p, tieruuid, block, first);
  382.                     }
  383.                 });
  384.  
  385.         if (potioneffectupgrade == 0) {
  386.             ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  387.             inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  388.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  389.                             "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lNone",
  390.                             "&7➥ &fNext upgrade: &e&lSpeed I",
  391.                             "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  392.                     potion, null, 1), new ItemListener() {
  393.                         public void onItemClick(Player p, ClickType click) {
  394.                             openPotionEffectUpgrades(p, tieruuid, block, first);
  395.                         }
  396.                     });
  397.         } else if (potioneffectupgrade == 1) {
  398.             ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  399.             inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  400.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  401.                             "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lSpeed I",
  402.                             "&7➥ &fNext upgrade: &e&lHaste I",
  403.                             "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  404.                     potion, null, 1), new ItemListener() {
  405.                         public void onItemClick(Player p, ClickType click) {
  406.                             openPotionEffectUpgrades(p, tieruuid, block, first);
  407.                         }
  408.                     });
  409.         } else if (potioneffectupgrade == 2) {
  410.             ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  411.             inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  412.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  413.                             "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lHaste I",
  414.                             "&7➥ &fNext upgrade: &e&lSpeed II",
  415.                             "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  416.                     potion, null, 1), new ItemListener() {
  417.                         public void onItemClick(Player p, ClickType click) {
  418.                             openPotionEffectUpgrades(p, tieruuid, block, first);
  419.                         }
  420.                     });
  421.         } else if (potioneffectupgrade == 3) {
  422.             ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  423.             inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  424.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  425.                             "", "&d&lSTATUS:", "&7➥ &fCurrent upgrade: &e&lSpeed II",
  426.                             "&7➥ &fNext upgrade: &e&lHaste II",
  427.                             "&7➥ &fProgress: " + getProgress(potioneffectupgrade), "", "&7&nClick to upgrade!", ""),
  428.                     potion, null, 1), new ItemListener() {
  429.                         public void onItemClick(Player p, ClickType click) {
  430.                             openPotionEffectUpgrades(p, tieruuid, block, first);
  431.                         }
  432.                     });
  433.         } else if (potioneffectupgrade == 4) {
  434.             ItemStack potion = new ItemStack(Material.POTION, 1, (short) 8257);
  435.             inv.setSlot(40, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE",
  436.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency!",
  437.                             "", "&d&lSTATUS:", "&7➥ &fNext upgrade: &e&lMaxed",
  438.                             "&7➥ &fProgress: " + getProgress(potioneffectupgrade), ""),
  439.                     potion, null, 1), new ItemListener() {
  440.                         public void onItemClick(Player p, ClickType click) {
  441.  
  442.                         }
  443.                     });
  444.         }
  445.  
  446.         inv.setSlot(42,
  447.                 InventoryAPI.createItem("&c&lREMOVE CELL MINE",
  448.                         Arrays.asList("", "&fRemoving your cell mine will not affect",
  449.                                 "&fits current upgrades and data on it!"),
  450.                         Material.BARRIER, null, 1),
  451.                 new ItemListener() {
  452.                     public void onItemClick(Player p, ClickType click) {
  453.                         // CellMines.getAPI().deleteMine(p,
  454.                         // cfg.getString("tier.info.name"), tieruuid, block,
  455.                         // first);
  456.                         // p.getOpenInventory().close();
  457.                         openCellRemoval(p, cfg.getString("tier.info.name"), tieruuid, block, first);
  458.                     }
  459.                 });
  460.  
  461.         for (int i = 0; i < 54; i++) {
  462.             if (inv.getSlot(i) == null) {
  463.                 ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  464.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  465.                     public void onItemClick(Player p, ClickType click) {
  466.                         // Empty doesn't do anything when clicked.
  467.                     }
  468.                 });
  469.             }
  470.         }
  471.  
  472.         inv.open(p);
  473.     }
  474.  
  475.     @SuppressWarnings("deprecation")
  476.     public void openBlockUpgrades(Player p, String tieruuid, Block block, Location first) {
  477.         Inventory inv = InventoryAPI.createInventory(
  478.                 ChatColor.translateAlternateColorCodes('&', "&8&lCELL BLOCK UPGRADES"), InventoryType.DISPENSER);
  479.  
  480.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  481.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  482.  
  483.         int level = cfg.getInt("tier.info.upgrades.block upgrade");
  484.  
  485.         ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  486.         SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  487.         upgradeskullmeta.setOwner(p.getName());
  488.         upgrade.setItemMeta(upgradeskullmeta);
  489.  
  490.         if (level == 0) {
  491.             inv.setSlot(4,
  492.                     InventoryAPI.createItem("&b&lBLOCK UPGRADE #1",
  493.                             Arrays.asList("", "&fUpgrade the block value for your mine!",
  494.                                     "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  495.                                     "&7➥ &fBlock: &e&lGold Block", "&7➥ &fProgress: &a⬛&c⬛⬛", "", "&b&lREQUIREMENTS:",
  496.                                     "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  497.                                             .getInt("upgrades.blockupgrade.first_upgrade.price"),
  498.                                     "", "&7&nClick to upgrade!", ""),
  499.                             upgrade, null, 1),
  500.                     new ItemListener() {
  501.                         public void onItemClick(Player p, ClickType click) {
  502.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  503.                                     .getPlugin("TokenManager");
  504.                             Player player = Bukkit.getPlayerExact(p.getName());
  505.                             long balance = tokenManager.getTokens(player).orElse(0);
  506.                             if (balance >= CellMines.getSystem().getConfig()
  507.                                     .getInt("upgrades.blockupgrade.first_upgrade.price")) {
  508.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  509.                                         .getInt("upgrades.blockupgrade.first_upgrade.price"));
  510.                                 int size = 0;
  511.                                 if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  512.                                     size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  513.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  514.                                     size = 15;
  515.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  516.                                     size = 20;
  517.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  518.                                     size = 25;
  519.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  520.                                     size = 30;
  521.                                 }
  522.                                 CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  523.                                         Material.valueOf(CellMines.getSystem().getConfig()
  524.                                                 .getString("cellmines.Cell.mineData.wallBlock")),
  525.                                         Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  526.                                                 .getString("cellmines.Cell.mineData.floorBlock")));
  527.                                 // Location second = new
  528.                                 // Location(block.getWorld(), block.getX() +
  529.                                 // size, block.getY(), block.getZ() - size);
  530.                                 // CellMines.getSystem().getGenerator().getInside(first,
  531.                                 // second, size, Material.GOLD_BLOCK);
  532.                                 cfg.set("tier.info.upgrades.block upgrade", level + 1);
  533.                                 try {
  534.                                     cfg.save(tierdata);
  535.                                     openManagement(p, tieruuid, block, first);
  536.                                 } catch (IOException e) {
  537.                                     e.printStackTrace();
  538.                                 }
  539.                             }
  540.                         }
  541.                     });
  542.         } else if (level == 1) {
  543.             inv.setSlot(4, InventoryAPI.createItem("&b&lBLOCK UPGRADE #2",
  544.                     Arrays.asList("", "&fUpgrade the block value for your mine!",
  545.                             "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  546.                             "&7➥ &fBlock: &e&lDiamond Block", "&7➥ &fProgress: &a⬛⬛&c⬛", "", "&b&lREQUIREMENTS:",
  547.                             "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  548.                             .getInt("upgrades.blockupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  549.                     upgrade, null, 1), new ItemListener() {
  550.                         public void onItemClick(Player p, ClickType click) {
  551.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  552.                                     .getPlugin("TokenManager");
  553.                             Player player = Bukkit.getPlayerExact(p.getName());
  554.                             long balance = tokenManager.getTokens(player).orElse(0);
  555.                             if (balance >= CellMines.getSystem().getConfig()
  556.                                     .getInt("upgrades.blockupgrade.second_upgrade.price")) {
  557.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  558.                                         .getInt("upgrades.blockupgrade.second_upgrade.price"));
  559.                                 int size = 0;
  560.                                 if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  561.                                     size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  562.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  563.                                     size = 15;
  564.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  565.                                     size = 20;
  566.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  567.                                     size = 25;
  568.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  569.                                     size = 30;
  570.                                 }
  571.                                 // Location second = new
  572.                                 // Location(block.getWorld(), block.getX() +
  573.                                 // size, block.getY(), block.getZ() - size);
  574.                                 // CellMines.getSystem().getGenerator().getInside(first,
  575.                                 // second, size, Material.DIAMOND_BLOCK);
  576.                                 try {
  577.                                     CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  578.                                             Material.valueOf(CellMines.getSystem().getConfig()
  579.                                                     .getString("cellmines.Cell.mineData.wallBlock")),
  580.                                             Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  581.                                                     .getString("cellmines.Cell.mineData.floorBlock")));
  582.                                 } catch (Exception e) {
  583.                                     e.printStackTrace();
  584.                                 }
  585.                                 cfg.set("tier.info.upgrades.block upgrade", level + 1);
  586.                                 try {
  587.                                     cfg.save(tierdata);
  588.                                     openManagement(p, tieruuid, block, first);
  589.                                 } catch (IOException e) {
  590.                                     e.printStackTrace();
  591.                                 }
  592.                             }
  593.                         }
  594.                     });
  595.         } else if (level == 2) {
  596.             inv.setSlot(4,
  597.                     InventoryAPI.createItem("&b&lBLOCK UPGRADE #3",
  598.                             Arrays.asList("", "&fUpgrade the block value for your mine!",
  599.                                     "&fHigher valued blocks equals more money!", "", "&b&lINFORMATION:",
  600.                                     "&7➥ &fBlock: &e&lEmerald Block", "&7➥ &fProgress: &a⬛⬛⬛", "", "&b&lREQUIREMENTS:",
  601.                                     "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  602.                                     .getInt("upgrades.blockupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  603.                             upgrade, null, 1),
  604.                     new ItemListener() {
  605.                         public void onItemClick(Player p, ClickType click) {
  606.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  607.                                     .getPlugin("TokenManager");
  608.                             Player player = Bukkit.getPlayerExact(p.getName());
  609.                             long balance = tokenManager.getTokens(player).orElse(0);
  610.                             if (balance >= CellMines.getSystem().getConfig()
  611.                                     .getInt("upgrades.blockupgrade.third_upgrade.price")) {
  612.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  613.                                         .getInt("upgrades.blockupgrade.third_upgrade.price"));
  614.                                 int size = 0;
  615.                                 if (cfg.getInt("tier.info.upgrades.size upgrade") == 0) {
  616.                                     size = CellMines.getSystem().getConfig().getInt("cellmines.Cell.mineData.size");
  617.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 1) {
  618.                                     size = 15;
  619.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 2) {
  620.                                     size = 20;
  621.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 3) {
  622.                                     size = 25;
  623.                                 } else if (cfg.getInt("tier.info.upgrades.size upgrade") == 4) {
  624.                                     size = 30;
  625.                                 }
  626.                                 // Location second = new
  627.                                 // Location(block.getWorld(), block.getX() +
  628.                                 // size, block.getY(), block.getZ() - size);
  629.                                 // CellMines.getSystem().getGenerator().getInside(first,
  630.                                 // second, size, Material.EMERALD_BLOCK);
  631.                                 CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, size,
  632.                                         Material.valueOf(CellMines.getSystem().getConfig()
  633.                                                 .getString("cellmines.Cell.mineData.wallBlock")),
  634.                                         Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  635.                                                 .getString("cellmines.Cell.mineData.floorBlock")));
  636.                                 cfg.set("tier.info.upgrades.block upgrade", level + 1);
  637.                                 try {
  638.                                     cfg.save(tierdata);
  639.                                     openManagement(p, tieruuid, block, first);
  640.                                 } catch (IOException e) {
  641.                                     e.printStackTrace();
  642.                                 }
  643.                             }
  644.                         }
  645.                     });
  646.         }
  647.  
  648.         for (int i = 0; i < 9; i++) {
  649.             if (inv.getSlot(i) == null) {
  650.                 ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  651.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  652.                     public void onItemClick(Player p, ClickType click) {
  653.                         // Empty doesn't do anything when clicked.
  654.                     }
  655.                 });
  656.             }
  657.         }
  658.  
  659.         inv.open(p);
  660.     }
  661.  
  662.     @SuppressWarnings("deprecation")
  663.     public void openSizeUpgrades(Player p, String tieruuid, Block block, Location first, IslandManager islandManager, Island island) {
  664.         Inventory inv = InventoryAPI.createInventory(
  665.                 ChatColor.translateAlternateColorCodes('&', "&8&lCELL SIZE UPGRADES"), InventoryType.DISPENSER);
  666.  
  667.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  668.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  669.  
  670.         int level = cfg.getInt("tier.info.upgrades.size upgrade");
  671.  
  672.         ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  673.         SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  674.         upgradeskullmeta.setOwner(p.getName());
  675.         upgrade.setItemMeta(upgradeskullmeta);
  676.  
  677.         if (level == 0) {
  678.             inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #1",
  679.                     Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  680.                             "&a&lINFORMATION:", "&7➥ &fSize: &e&l15x15x15", "&7➥ &fProgress: &a⬛&c⬛⬛⬛", "",
  681.                             "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  682.                             .getInt("upgrades.sizeupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  683.                     upgrade, null, 1), new ItemListener() {
  684.                         public void onItemClick(Player p, ClickType click) {
  685.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  686.                                     .getPlugin("TokenManager");
  687.                             Player player = Bukkit.getPlayerExact(p.getName());
  688.                             long balance = tokenManager.getTokens(player).orElse(0);
  689.                             if (balance >= CellMines.getSystem().getConfig()
  690.                                     .getInt("upgrades.sizeupgrade.first_upgrade.price")) {
  691.                                 Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  692.                                 Location corner = new Location(block.getWorld(), block.getX() + 15, block.getY() - 15,
  693.                                         block.getZ() - 15);
  694.  
  695.                                 int count = 0;
  696.  
  697.                                 for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  698.                                     for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  699.                                         for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  700.                                             Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  701.                                             if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  702.                                                 continue;
  703.                                             } else {
  704.                                                 count++;
  705.                                             }
  706.                                         }
  707.                                     }
  708.                                 }
  709.  
  710.                                 if (count == 0) {
  711.                                     tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  712.                                             .getInt("upgrades.sizeupgrade.first_upgrade.price"));
  713.                                     if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  714.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  715.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  716.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  717.                                                 Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  718.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  719.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  720.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  721.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  722.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  723.                                                 Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  724.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  725.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  726.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  727.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  728.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  729.                                                 Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  730.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  731.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  732.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 15,
  733.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  734.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  735.                                                 Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  736.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  737.                                     }
  738.                                     cfg.set("tier.info.upgrades.size upgrade", level + 1);
  739.                                     try {
  740.                                         cfg.save(tierdata);
  741.                                         openManagement(p, tieruuid, block, first);
  742.                                     } catch (IOException e) {
  743.                                         e.printStackTrace();
  744.                                     }
  745.                                 } else {
  746.                                     p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  747.                                             "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  748.                                 }
  749.                             }
  750.                         }
  751.                     });
  752.         } else if (level == 1) {
  753.             inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #2",
  754.                     Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  755.                             "&a&lINFORMATION:", "&7➥ &fSize: &e&l20x20x20", "&7➥ &fProgress: &a⬛⬛&c⬛⬛", "",
  756.                             "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  757.                             .getInt("upgrades.sizeupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  758.                     upgrade, null, 1), new ItemListener() {
  759.                         public void onItemClick(Player p, ClickType click) {
  760.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  761.                                     .getPlugin("TokenManager");
  762.                             Player player = Bukkit.getPlayerExact(p.getName());
  763.                             long balance = tokenManager.getTokens(player).orElse(0);
  764.                             if (balance >= CellMines.getSystem().getConfig()
  765.                                     .getInt("upgrades.sizeupgrade.second_upgrade.price")) {
  766.                                 Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  767.                                 Location corner = new Location(block.getWorld(), block.getX() + 20, block.getY() - 20,
  768.                                         block.getZ() - 20);
  769.  
  770.                                 int count = 0;
  771.  
  772.                                 for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  773.                                     for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  774.                                         for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  775.                                             Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  776.                                             if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  777.                                                 continue;
  778.                                             } else {
  779.                                                 count++;
  780.                                             }
  781.                                         }
  782.                                     }
  783.                                 }
  784.  
  785.                                 if (count == 0) {
  786.                                     tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  787.                                             .getInt("upgrades.sizeupgrade.second_upgrade.price"));
  788.                                     if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  789.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  790.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  791.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  792.                                                 Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  793.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  794.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  795.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  796.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  797.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  798.                                                 Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  799.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  800.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  801.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  802.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  803.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  804.                                                 Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  805.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  806.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  807.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 20,
  808.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  809.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  810.                                                 Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  811.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  812.                                     }
  813.                                     cfg.set("tier.info.upgrades.size upgrade", level + 1);
  814.                                     try {
  815.                                         cfg.save(tierdata);
  816.                                         openManagement(p, tieruuid, block, first);
  817.                                     } catch (IOException e) {
  818.                                         e.printStackTrace();
  819.                                     }
  820.                                 } else {
  821.                                     p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  822.                                             "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  823.                                 }
  824.                             }
  825.                         }
  826.                     });
  827.         } else if (level == 2) {
  828.             inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE #3",
  829.                     Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  830.                             "&a&lINFORMATION:", "&7➥ &fSize: &e&l25x25x25", "&7➥ &fProgress: &a⬛⬛⬛&c⬛", "",
  831.                             "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  832.                             .getInt("upgrades.sizeupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  833.                     upgrade, null, 1), new ItemListener() {
  834.                         public void onItemClick(Player p, ClickType click) {
  835.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  836.                                     .getPlugin("TokenManager");
  837.                             Player player = Bukkit.getPlayerExact(p.getName());
  838.                             long balance = tokenManager.getTokens(player).orElse(0);
  839.                             if (balance >= CellMines.getSystem().getConfig()
  840.                                     .getInt("upgrades.sizeupgrade.third_upgrade.price")) {
  841.                                 Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  842.                                 Location corner = new Location(block.getWorld(), block.getX() + 25, block.getY() - 25,
  843.                                         block.getZ() - 25);
  844.  
  845.                                 int count = 0;
  846.  
  847.                                 for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  848.                                     for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  849.                                         for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  850.                                             Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  851.                                             if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  852.                                                 continue;
  853.                                             } else {
  854.                                                 count++;
  855.                                             }
  856.                                         }
  857.                                     }
  858.                                 }
  859.  
  860.                                 if (count == 0) {
  861.                                     tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  862.                                             .getInt("upgrades.sizeupgrade.third_upgrade.price"));
  863.                                     if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  864.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  865.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  866.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  867.                                                 Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  868.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  869.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  870.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  871.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  872.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  873.                                                 Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  874.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  875.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  876.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  877.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  878.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  879.                                                 Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  880.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  881.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  882.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 25,
  883.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  884.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  885.                                                 Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  886.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  887.                                     }
  888.                                     cfg.set("tier.info.upgrades.size upgrade", level + 1);
  889.                                     try {
  890.                                         cfg.save(tierdata);
  891.                                         openManagement(p, tieruuid, block, first);
  892.                                     } catch (IOException e) {
  893.                                         e.printStackTrace();
  894.                                     }
  895.                                 } else {
  896.                                     p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  897.                                             "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  898.                                 }
  899.                             }
  900.                         }
  901.                     });
  902.         } else if (level == 3) {
  903.             inv.setSlot(4, InventoryAPI.createItem("&a&lSIZE UPGRADE 43",
  904.                     Arrays.asList("", "&fUpgrade cell size to increase", "&fyour mining efficiency and rewards!", "",
  905.                             "&a&lINFORMATION:", "&7➥ &fSize: &e&l30x30x30", "&7➥ &fProgress: &a⬛⬛⬛⬛", "",
  906.                             "&a&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  907.                             .getInt("upgrades.sizeupgrade.fourth_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  908.                     upgrade, null, 1), new ItemListener() {
  909.                         public void onItemClick(Player p, ClickType click) {
  910.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  911.                                     .getPlugin("TokenManager");
  912.                             Player player = Bukkit.getPlayerExact(p.getName());
  913.                             long balance = tokenManager.getTokens(player).orElse(0);
  914.                             if (balance >= CellMines.getSystem().getConfig()
  915.                                     .getInt("upgrades.sizeupgrade.fourth_upgrade.price")) {
  916.                                 Location b = new Location(block.getWorld(), block.getX(), block.getY(), block.getZ());
  917.                                 Location corner = new Location(block.getWorld(), block.getX() + 15, block.getY() - 15,
  918.                                         block.getZ() - 15);
  919.  
  920.                                 int count = 0;
  921.  
  922.                                 for (int x = (int) b.getX(); x <= corner.getX(); x++) {
  923.                                     for (int y = (int) b.getY(); y >= corner.getY(); y--) {
  924.                                         for (int z = (int) b.getZ(); z >= corner.getZ(); z--) {
  925.                                             Block block1 = new Location(b.getWorld(), x, y, z).getBlock();
  926.                                             if (islandManager.isLocationAtIsland(island, block1.getLocation())) {
  927.                                                 continue;
  928.                                             } else {
  929.                                                 count++;
  930.                                             }
  931.                                         }
  932.                                     }
  933.                                 }
  934.  
  935.                                 if (count == 0) {
  936.                                     tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  937.                                             .getInt("upgrades.sizeupgrade.fourth_upgrade.price"));
  938.                                     if (cfg.getInt("tier.info.upgrades.block upgrade") == 0) {
  939.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  940.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  941.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  942.                                                 Material.IRON_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  943.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  944.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 1) {
  945.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  946.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  947.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  948.                                                 Material.GOLD_BLOCK, Material.valueOf(CellMines.getSystem().getConfig()
  949.                                                         .getString("cellmines.Cell.mineData.floorBlock")));
  950.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 2) {
  951.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  952.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  953.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  954.                                                 Material.DIAMOND_BLOCK, Material.valueOf(CellMines.getSystem()
  955.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  956.                                     } else if (cfg.getInt("tier.info.upgrades.block upgrade") == 3) {
  957.                                         CellMines.getSystem().getGenerator().generate("BEDROCK", block, first, 30,
  958.                                                 Material.valueOf(CellMines.getSystem().getConfig()
  959.                                                         .getString("cellmines.Cell.mineData.wallBlock")),
  960.                                                 Material.EMERALD_BLOCK, Material.valueOf(CellMines.getSystem()
  961.                                                         .getConfig().getString("cellmines.Cell.mineData.floorBlock")));
  962.                                     }
  963.                                     cfg.set("tier.info.upgrades.size upgrade", level + 1);
  964.                                     try {
  965.                                         cfg.save(tierdata);
  966.                                         openManagement(p, tieruuid, block, first);
  967.                                     } catch (IOException e) {
  968.                                         e.printStackTrace();
  969.                                     }
  970.                                 } else {
  971.                                     p.sendMessage(ChatColor.translateAlternateColorCodes('&',
  972.                                             "&cYou do not have enough space on your cell to upgrade the cell mine here."));
  973.                                 }
  974.                             }
  975.                         }
  976.                     });
  977.         }
  978.  
  979.         for (int i = 0; i < 9; i++) {
  980.             if (inv.getSlot(i) == null) {
  981.                 ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  982.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  983.                     public void onItemClick(Player p, ClickType click) {
  984.                         // Empty doesn't do anything when clicked.
  985.                     }
  986.                 });
  987.             }
  988.         }
  989.  
  990.         inv.open(p);
  991.     }
  992.  
  993.     @SuppressWarnings("deprecation")
  994.     public void openResetUpgrades(Player p, String tieruuid, Block block, Location first) {
  995.         Inventory inv = InventoryAPI.createInventory(
  996.                 ChatColor.translateAlternateColorCodes('&', "&8&lCELL RESET UPGRADES"), InventoryType.DISPENSER);
  997.  
  998.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  999.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1000.  
  1001.         int level = cfg.getInt("tier.info.upgrades.reset upgrade");
  1002.  
  1003.         ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1004.         SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1005.         upgradeskullmeta.setOwner(p.getName());
  1006.         upgrade.setItemMeta(upgradeskullmeta);
  1007.  
  1008.         if (level == 0) {
  1009.             inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #1",
  1010.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1011.                             "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1012.                             "&7➥ &fReset Type: &e&lPercent (10%)", "&7➥ &fProgress: &a⬛&c⬛⬛", "", "&6&lREQUIREMENTS:",
  1013.                             "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1014.                             .getInt("upgrades.resetupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1015.                     upgrade, null, 1), new ItemListener() {
  1016.                         public void onItemClick(Player p, ClickType click) {
  1017.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1018.                                     .getPlugin("TokenManager");
  1019.                             Player player = Bukkit.getPlayerExact(p.getName());
  1020.                             long balance = tokenManager.getTokens(player).orElse(0);
  1021.                             if (balance >= CellMines.getSystem().getConfig()
  1022.                                     .getInt("upgrades.resetupgrade.first_upgrade.price")) {
  1023.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1024.                                         .getInt("upgrades.resetupgrade.first_upgrade.price"));
  1025.                                 cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1026.                                 try {
  1027.                                     cfg.save(tierdata);
  1028.                                     openManagement(p, tieruuid, block, first);
  1029.                                 } catch (IOException e) {
  1030.                                     e.printStackTrace();
  1031.                                 }
  1032.                             }
  1033.                         }
  1034.                     });
  1035.         } else if (level == 1) {
  1036.             inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #2",
  1037.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1038.                             "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1039.                             "&7➥ &fReset Type: &e&lPercent (20%)", "&7➥ &fProgress: &a⬛⬛&c⬛", "", "&6&lREQUIREMENTS:",
  1040.                             "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1041.                             .getInt("upgrades.resetupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1042.                     upgrade, null, 1), new ItemListener() {
  1043.                         public void onItemClick(Player p, ClickType click) {
  1044.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1045.                                     .getPlugin("TokenManager");
  1046.                             Player player = Bukkit.getPlayerExact(p.getName());
  1047.                             long balance = tokenManager.getTokens(player).orElse(0);
  1048.                             if (balance >= CellMines.getSystem().getConfig()
  1049.                                     .getInt("upgrades.resetupgrade.second_upgrade.price")) {
  1050.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1051.                                         .getInt("upgrades.resetupgrade.second_upgrade.price"));
  1052.                                 cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1053.                                 try {
  1054.                                     cfg.save(tierdata);
  1055.                                     openManagement(p, tieruuid, block, first);
  1056.                                 } catch (IOException e) {
  1057.                                     e.printStackTrace();
  1058.                                 }
  1059.                             }
  1060.                         }
  1061.                     });
  1062.         } else if (level == 2) {
  1063.             inv.setSlot(4, InventoryAPI.createItem("&6&lRESET UPGRADE #3",
  1064.                     Arrays.asList("", "&fUpgrade your reset type from manual", "&fresets to percentage resets for fast",
  1065.                             "&fconstant ininterrupted mining!", "", "&6&lINFORMATION:",
  1066.                             "&7➥ &fReset Type: &e&lPercent (30%)", "&7➥ &fProgress: &a⬛⬛⬛", "", "&6&lREQUIREMENTS:",
  1067.                             "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1068.                             .getInt("upgrades.resetupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1069.                     upgrade, null, 1), new ItemListener() {
  1070.                         public void onItemClick(Player p, ClickType click) {
  1071.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1072.                                     .getPlugin("TokenManager");
  1073.                             Player player = Bukkit.getPlayerExact(p.getName());
  1074.                             long balance = tokenManager.getTokens(player).orElse(0);
  1075.                             if (balance >= CellMines.getSystem().getConfig()
  1076.                                     .getInt("upgrades.resetupgrade.third_upgrade.price")) {
  1077.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1078.                                         .getInt("upgrades.resetupgrade.third_upgrade.price"));
  1079.                                 cfg.set("tier.info.upgrades.reset upgrade", level + 1);
  1080.                                 try {
  1081.                                     cfg.save(tierdata);
  1082.                                     openManagement(p, tieruuid, block, first);
  1083.                                 } catch (IOException e) {
  1084.                                     e.printStackTrace();
  1085.                                 }
  1086.                             }
  1087.                         }
  1088.                     });
  1089.         }
  1090.  
  1091.         for (int i = 0; i < 9; i++) {
  1092.             if (inv.getSlot(i) == null) {
  1093.                 ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1094.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  1095.                     public void onItemClick(Player p, ClickType click) {
  1096.                         // Empty doesn't do anything when clicked.
  1097.                     }
  1098.                 });
  1099.             }
  1100.         }
  1101.  
  1102.         inv.open(p);
  1103.     }
  1104.  
  1105.     @SuppressWarnings("deprecation")
  1106.     public void openTeamManagement(Player p, String tieruuid, Block block, Location first) {
  1107.         Inventory inv = InventoryAPI
  1108.                 .createInventory1(ChatColor.translateAlternateColorCodes('&', "&7Cell Team Management"), 54);
  1109.  
  1110.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  1111.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1112.  
  1113.         ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1114.         SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1115.         upgradeskullmeta.setOwner(p.getName());
  1116.         upgrade.setItemMeta(upgradeskullmeta);
  1117.  
  1118.         ItemStack item = new ItemStack(Material.BOOK);
  1119.         inv.setSlot(4, InventoryAPI.createItem("&3&lTEAM MANAGEMENT",
  1120.                 Arrays.asList("", "&7Click to purchase a redeem token!", "&7Redeem tokens cost &d&l20,000 &7tokens!"),
  1121.                 item, null, 1), new ItemListener() {
  1122.                     public void onItemClick(Player p, ClickType click) {
  1123.                         TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager().getPlugin("TokenManager");
  1124.                         Player player = Bukkit.getPlayerExact(p.getName());
  1125.                         long balance = tokenManager.getTokens(player).orElse(0);
  1126.                         if (balance >= 20000) {
  1127.                             tokenManager.setTokens(p, balance - 20000);
  1128.                             cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1129.                             try {
  1130.                                 cfg.save(tierdata);
  1131.                                 openTeamManagement(p, tieruuid, block, first);
  1132.                             } catch (IOException e) {
  1133.                                 e.printStackTrace();
  1134.                             }
  1135.                         }
  1136.                     }
  1137.                 });
  1138.  
  1139.         IslandManager islandManager = SkyBlockAPI.getIslandManager();
  1140.         WorldManager worldManager = SkyBlock.getInstance().getWorldManager();
  1141.         if (!worldManager.isIslandWorld(block.getWorld())) {
  1142.             return;
  1143.         }
  1144.         Island island = islandManager.getIsland(p);
  1145.         Set<UUID> islandmembers = island.getPlayersWithRole(IslandRole.MEMBER);
  1146.         for (UUID operator : island.getPlayersWithRole(IslandRole.OPERATOR)) {
  1147.             islandmembers.add(operator);
  1148.         }
  1149.         for (UUID owner : island.getPlayersWithRole(IslandRole.OWNER)) {
  1150.             islandmembers.add(owner);
  1151.         }
  1152.         islandmembers.remove(UUID.fromString(cfg.getString("tier.info.owner.uuid")));
  1153.  
  1154.         int current = 0;
  1155.  
  1156.         int[] memberslots = { 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 };
  1157.  
  1158.         List<String> members = cfg.getStringList("tier.info.members");
  1159.  
  1160.         for (UUID member : islandmembers) {
  1161.             if (member != UUID.fromString(cfg.getString("tier.info.owner.uuid"))) {
  1162.                 String access = "";
  1163.                 if (members.contains(member.toString())) {
  1164.                     access = "&a&lGRANTED";
  1165.                 } else {
  1166.                     access = "&c&lDENIED";
  1167.                 }
  1168.                 if (isPlayerOnline(member.toString())) {
  1169.                     ItemStack memberhead = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1170.                     SkullMeta memberheadmeta = (SkullMeta) memberhead.getItemMeta();
  1171.                     memberheadmeta.setOwner(Bukkit.getPlayer(member).getName());
  1172.                     memberhead.setItemMeta(memberheadmeta);
  1173.                     inv.setSlot(memberslots[current],
  1174.                             InventoryAPI.createItem("&e&l" + Bukkit.getPlayer(member).getName(),
  1175.                                     Arrays.asList("&7This player has access " + access, "",
  1176.                                             "&7Left click to give access", "&7Right click to remove access", "",
  1177.                                             "&7You have &e&l" + cfg.getInt("tier.info.tokens") + " &7redeem tokens!",
  1178.                                             ""),
  1179.                                     memberhead, null, 1),
  1180.                             new ItemListener() {
  1181.                                 public void onItemClick(Player p, ClickType click) {
  1182.                                     if (click == ClickType.LEFT) {
  1183.                                         if (cfg.getInt("tier.info.tokens") > 0) {
  1184.                                             if (!members.contains(member.toString())) {
  1185.                                                 cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") - 1);
  1186.                                                 members.add(member.toString());
  1187.                                                 cfg.set("tier.info.members", members);
  1188.                                                 try {
  1189.                                                     cfg.save(tierdata);
  1190.                                                     openTeamManagement(p, tieruuid, block, first);
  1191.                                                 } catch (IOException e) {
  1192.                                                     e.printStackTrace();
  1193.                                                 }
  1194.                                             }
  1195.                                         }
  1196.                                     } else if (click == ClickType.RIGHT) {
  1197.                                         if (members.contains(member.toString())) {
  1198.                                             cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1199.                                             members.remove(member.toString());
  1200.                                             cfg.set("tier.info.members", members);
  1201.                                             try {
  1202.                                                 cfg.save(tierdata);
  1203.                                                 openTeamManagement(p, tieruuid, block, first);
  1204.                                             } catch (IOException e) {
  1205.                                                 e.printStackTrace();
  1206.                                             }
  1207.                                         }
  1208.                                     }
  1209.                                 }
  1210.                             });
  1211.                     current++;
  1212.                 } else {
  1213.                     ItemStack memberhead = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1214.                     SkullMeta memberheadmeta = (SkullMeta) memberhead.getItemMeta();
  1215.                     memberheadmeta.setOwner(Bukkit.getOfflinePlayer(member).getName());
  1216.                     memberhead.setItemMeta(memberheadmeta);
  1217.                     inv.setSlot(memberslots[current],
  1218.                             InventoryAPI.createItem("&e&l" + Bukkit.getOfflinePlayer(member).getName(),
  1219.                                     Arrays.asList("&7This player has access " + access, "",
  1220.                                             "&7Left click to give access", "&7Right click to remove access", "",
  1221.                                             "&7You have &e&l" + cfg.getInt("tier.info.tokens") + " &7redeem tokens!",
  1222.                                             ""),
  1223.                                     memberhead, null, 1),
  1224.                             new ItemListener() {
  1225.                                 public void onItemClick(Player p, ClickType click) {
  1226.                                     if (click == ClickType.LEFT) {
  1227.                                         if (cfg.getInt("tier.info.tokens") > 0) {
  1228.                                             if (!members.contains(member.toString())) {
  1229.                                                 cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") - 1);
  1230.                                                 members.add(member.toString());
  1231.                                                 cfg.set("tier.info.members", members);
  1232.                                                 try {
  1233.                                                     cfg.save(tierdata);
  1234.                                                     openTeamManagement(p, tieruuid, block, first);
  1235.                                                 } catch (IOException e) {
  1236.                                                     e.printStackTrace();
  1237.                                                 }
  1238.                                             }
  1239.                                         }
  1240.                                     } else if (click == ClickType.RIGHT) {
  1241.                                         if (members.contains(member.toString())) {
  1242.                                             cfg.set("tier.info.tokens", cfg.getInt("tier.info.tokens") + 1);
  1243.                                             members.remove(member.toString());
  1244.                                             cfg.set("tier.info.members", members);
  1245.                                             try {
  1246.                                                 cfg.save(tierdata);
  1247.                                                 openTeamManagement(p, tieruuid, block, first);
  1248.                                             } catch (IOException e) {
  1249.                                                 e.printStackTrace();
  1250.                                             }
  1251.                                         }
  1252.                                     }
  1253.                                 }
  1254.                             });
  1255.                     current++;
  1256.                 }
  1257.             }
  1258.         }
  1259.  
  1260.         for (int i = 0; i < 54; i++) {
  1261.             if (inv.getSlot(i) == null && !contains(memberslots, i)) {
  1262.                 ItemStack item1 = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1263.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item1, null, 1), new ItemListener() {
  1264.                     public void onItemClick(Player p, ClickType click) {
  1265.                         // Empty doesn't do anything when clicked.
  1266.                     }
  1267.                 });
  1268.             }
  1269.         }
  1270.  
  1271.         inv.open(p);
  1272.     }
  1273.  
  1274.     public static boolean isPlayerOnline(String s) {
  1275.         Player p = Bukkit.getPlayer(UUID.fromString(s));
  1276.         if (!(p == null)) {
  1277.             return true;
  1278.         }
  1279.         return false;
  1280.     }
  1281.  
  1282.     public boolean contains(final int[] array, final int key) {
  1283.         return ArrayUtils.contains(array, key);
  1284.     }
  1285.  
  1286.     @SuppressWarnings("deprecation")
  1287.     public void openPotionEffectUpgrades(Player p, String tieruuid, Block block, Location first) {
  1288.         Inventory inv = InventoryAPI.createInventory(
  1289.                 ChatColor.translateAlternateColorCodes('&', "&8&lCELL POTION UPGRADES"), InventoryType.DISPENSER);
  1290.  
  1291.         File tierdata = new File("plugins/CellMines/Mines/", tieruuid + ".yml");
  1292.         FileConfiguration cfg = YamlConfiguration.loadConfiguration(tierdata);
  1293.  
  1294.         int level = cfg.getInt("tier.info.upgrades.potion upgrade");
  1295.  
  1296.         ItemStack upgrade = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  1297.         SkullMeta upgradeskullmeta = (SkullMeta) upgrade.getItemMeta();
  1298.         upgradeskullmeta.setOwner(p.getName());
  1299.         upgrade.setItemMeta(upgradeskullmeta);
  1300.  
  1301.         if (level == 0) {
  1302.             inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #1",
  1303.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1304.                             "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lSpeed I", "&7➥ &fProgress: &a⬛&c⬛⬛⬛", "",
  1305.                             "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1306.                             .getInt("upgrades.potionupgrade.first_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1307.                     upgrade, null, 1), new ItemListener() {
  1308.                         public void onItemClick(Player p, ClickType click) {
  1309.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1310.                                     .getPlugin("TokenManager");
  1311.                             Player player = Bukkit.getPlayerExact(p.getName());
  1312.                             long balance = tokenManager.getTokens(player).orElse(0);
  1313.                             if (balance >= CellMines.getSystem().getConfig()
  1314.                                     .getInt("upgrades.potionupgrade.first_upgrade.price")) {
  1315.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1316.                                         .getInt("upgrades.potionupgrade.first_upgrade.price"));
  1317.                                 cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1318.                                 try {
  1319.                                     cfg.save(tierdata);
  1320.                                     openManagement(p, tieruuid, block, first);
  1321.                                 } catch (IOException e) {
  1322.                                     e.printStackTrace();
  1323.                                 }
  1324.                             }
  1325.                         }
  1326.                     });
  1327.         } else if (level == 1) {
  1328.             inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #2",
  1329.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1330.                             "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lHaste I", "&7➥ &fProgress: &a⬛⬛&c⬛⬛", "",
  1331.                             "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1332.                             .getInt("upgrades.potionupgrade.second_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1333.                     upgrade, null, 1), new ItemListener() {
  1334.                         public void onItemClick(Player p, ClickType click) {
  1335.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1336.                                     .getPlugin("TokenManager");
  1337.                             Player player = Bukkit.getPlayerExact(p.getName());
  1338.                             long balance = tokenManager.getTokens(player).orElse(0);
  1339.                             if (balance >= CellMines.getSystem().getConfig()
  1340.                                     .getInt("upgrades.potionupgrade.second_upgrade.price")) {
  1341.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1342.                                         .getInt("upgrades.potionupgrade.second_upgrade.price"));
  1343.                                 cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1344.                                 try {
  1345.                                     cfg.save(tierdata);
  1346.                                     openManagement(p, tieruuid, block, first);
  1347.                                 } catch (IOException e) {
  1348.                                     e.printStackTrace();
  1349.                                 }
  1350.                             }
  1351.                         }
  1352.                     });
  1353.         } else if (level == 2) {
  1354.             inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #3",
  1355.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1356.                             "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lSpeed II", "&7➥ &fProgress: &a⬛⬛⬛&c⬛", "",
  1357.                             "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1358.                             .getInt("upgrades.potionupgrade.third_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1359.                     upgrade, null, 1), new ItemListener() {
  1360.                         public void onItemClick(Player p, ClickType click) {
  1361.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1362.                                     .getPlugin("TokenManager");
  1363.                             Player player = Bukkit.getPlayerExact(p.getName());
  1364.                             long balance = tokenManager.getTokens(player).orElse(0);
  1365.                             if (balance >= CellMines.getSystem().getConfig()
  1366.                                     .getInt("upgrades.potionupgrade.third_upgrade.price")) {
  1367.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1368.                                         .getInt("upgrades.potionupgrade.third_upgrade.price"));
  1369.                                 cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1370.                                 try {
  1371.                                     cfg.save(tierdata);
  1372.                                     openManagement(p, tieruuid, block, first);
  1373.                                 } catch (IOException e) {
  1374.                                     e.printStackTrace();
  1375.                                 }
  1376.                             }
  1377.                         }
  1378.                     });
  1379.         } else if (level == 3) {
  1380.             inv.setSlot(4, InventoryAPI.createItem("&d&lPOTION EFFECT UPGRADE #4",
  1381.                     Arrays.asList("", "&fUpgrade potion effects to enhance", "&fyour mining experience and efficiency",
  1382.                             "", "&d&lINFORMATION:", "&7➥ &fEffect: &e&lHaste II", "&7➥ &fProgress: &a⬛⬛⬛⬛", "",
  1383.                             "&d&lREQUIREMENTS:", "&7➥ &fTokens: " + CellMines.getSystem().getConfig()
  1384.                             .getInt("upgrades.potionupgrade.fourth_upgrade.price"), "", "&7&nClick to upgrade!", ""),
  1385.                     upgrade, null, 1), new ItemListener() {
  1386.                         public void onItemClick(Player p, ClickType click) {
  1387.                             TokenManager tokenManager = (TokenManager) Bukkit.getPluginManager()
  1388.                                     .getPlugin("TokenManager");
  1389.                             Player player = Bukkit.getPlayerExact(p.getName());
  1390.                             long balance = tokenManager.getTokens(player).orElse(0);
  1391.                             if (balance >= CellMines.getSystem().getConfig()
  1392.                                     .getInt("upgrades.potionupgrade.fourth_upgrade.price")) {
  1393.                                 tokenManager.setTokens(p, balance - CellMines.getSystem().getConfig()
  1394.                                         .getInt("upgrades.potionupgrade.fourth_upgrade.price"));
  1395.                                 cfg.set("tier.info.upgrades.potion upgrade", level + 1);
  1396.                                 try {
  1397.                                     cfg.save(tierdata);
  1398.                                     openManagement(p, tieruuid, block, first);
  1399.                                 } catch (IOException e) {
  1400.                                     e.printStackTrace();
  1401.                                 }
  1402.                             }
  1403.                         }
  1404.                     });
  1405.         }
  1406.  
  1407.         for (int i = 0; i < 9; i++) {
  1408.             if (inv.getSlot(i) == null) {
  1409.                 ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1410.                 inv.setSlot(i, InventoryAPI.createItem("&a", null, item, null, 1), new ItemListener() {
  1411.                     public void onItemClick(Player p, ClickType click) {
  1412.                         // Empty doesn't do anything when clicked.
  1413.                     }
  1414.                 });
  1415.             }
  1416.         }
  1417.  
  1418.         inv.open(p);
  1419.     }
  1420.  
  1421.     public void openCellRemoval(Player p, String tier, String tieruuid, Block block, Location first) {
  1422.         Inventory inv = InventoryAPI.createInventory1(ChatColor.translateAlternateColorCodes('&', "Confirmation"), 54);
  1423.  
  1424.         int[] activate = { 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29, 30, 36, 37, 38, 39, 45, 46, 47, 48 };
  1425.         int[] middle = { 4, 13, 22, 31, 40, 49 };
  1426.         int[] deactivate = { 5, 6, 7, 8, 14, 15, 16, 17, 23, 24, 25, 26, 32, 33, 34, 35, 41, 42, 43, 44, 50, 51, 52,
  1427.                 53 };
  1428.  
  1429.         for (int i : activate) {
  1430.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
  1431.             inv.setSlot(i, InventoryAPI.createItem("&a&lYES",
  1432.                     Arrays.asList("", "&7Click to your destory your mine!", ""), item, null, 1), new ItemListener() {
  1433.                         public void onItemClick(Player p, ClickType click) {
  1434.                             CellMines.getAPI().deleteMine(p, tier, tieruuid, block, first);
  1435.                             // CellMines.getAPI().giveTier(tier, p);
  1436.                             p.getOpenInventory().close();
  1437.                         }
  1438.                     });
  1439.         }
  1440.  
  1441.         for (int i : middle) {
  1442.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
  1443.             inv.setSlot(i, InventoryAPI.createItem("&e&lDESTORY CELL MINE?", null, item, null, 1), new ItemListener() {
  1444.                 public void onItemClick(Player p, ClickType click) {
  1445.                     // Empty doesn't do anything when clicked.
  1446.                 }
  1447.             });
  1448.         }
  1449.  
  1450.         for (int i : deactivate) {
  1451.             ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
  1452.             inv.setSlot(i, InventoryAPI.createItem("&c&lNO", Arrays.asList("", "&7Click to keep your cell mine!", ""),
  1453.                     item, null, 1), new ItemListener() {
  1454.                         public void onItemClick(Player p, ClickType click) {
  1455.                             if (tier.equalsIgnoreCase("Cell")) {
  1456.                                 openManagement(p, tieruuid, block, first);
  1457.                             } else if (tier.equalsIgnoreCase("Donor")) {
  1458.                                 p.getOpenInventory().close();
  1459.                             }
  1460.                         }
  1461.                     });
  1462.         }
  1463.  
  1464.         inv.open(p);
  1465.     }
  1466. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top