//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package me.gromfake.prison;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Upgrade implements CommandExecutor, Listener {
String id = null;
String iid = null;
String pid = null;
private Inventory inv;
public Upgrade() {
}
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player p = (Player)sender;
if(!command.getName().equalsIgnoreCase("upgrade")) {
return true;
} else if(p.getItemInHand().getType().equals(Material.AIR)) {
p.sendMessage("§6§l| Prison | §cВы должны взять предмет в руку!");
return true;
} else if(p.getItemInHand().getItemMeta().getLore() == null) {
p.sendMessage("§6§l| Prison | §cДанный предмет отличается от других! Он не может быть улучшен.");
return true;
} else {
List lore = p.getItemInHand().getItemMeta().getLore();
Iterator glassMeta = lore.iterator();
String glass;
if(glassMeta.hasNext()) {
glass = (String)glassMeta.next();
if(!glass.contains("" + ChatColor.BLACK)) {
p.sendMessage("§6§l| Prison | §cЭтот предмет не подлежит улучшению!");
return true;
}
}
for(glassMeta = Main.instance.itemsConfig.getKeys(false).iterator(); glassMeta.hasNext(); this.id = null) {
glass = (String)glassMeta.next();
if(lore.contains(ChatColor.BLACK + glass)) {
this.id = glass;
break;
}
}
if(this.id == null) {
p.sendMessage("§6§l| Prison | §cЭтот предмет не подлежит улучшению!");
return true;
} else if(!Main.instance.itemsConfig.contains(this.id + ".next")) {
p.sendMessage("§6§l| Prison | §aЭтот предмет максимально улучшен!");
return true;
} else {
ItemStack glass1 = new ItemStack(Material.STAINED_GLASS_PANE);
ItemMeta glassMeta1 = glass1.getItemMeta();
glass1.setDurability((short)3);
glassMeta1.setDisplayName(" ");
glass1.setItemMeta(glassMeta1);
Material oldItemMaterial = Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(this.id).getString("material"));
ItemStack oldItem = new ItemStack(oldItemMaterial);
ItemMeta oldItemMeta = oldItem.getItemMeta();
oldItemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(this.id).getString("name")));
ArrayList oldItemLore = new ArrayList();
oldItemLore.add(ChatColor.BLACK + this.id);
Iterator nextItemMaterial = Main.instance.itemsConfig.getConfigurationSection(this.id).getStringList("lore").iterator();
String newPath;
while(nextItemMaterial.hasNext()) {
newPath = (String)nextItemMaterial.next();
newPath = ChatColor.translateAlternateColorCodes('&', newPath);
oldItemLore.add(newPath);
}
oldItemMeta.setLore(oldItemLore);
oldItem.setItemMeta(oldItemMeta);
if(Main.instance.itemsConfig.contains(this.id + ".enchantments")) {
nextItemMaterial = Main.instance.itemsConfig.getConfigurationSection(this.id + ".enchantments").getKeys(false).iterator();
while(nextItemMaterial.hasNext()) {
newPath = (String)nextItemMaterial.next();
oldItem.addEnchantment(Enchantment.getByName(newPath), Main.instance.itemsConfig.getConfigurationSection(this.id + ".enchantments").getInt(newPath));
}
}
newPath = Main.instance.itemsConfig.getConfigurationSection(this.id).getString("next");
Material nextItemMaterial1 = Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(newPath).getString("material"));
ItemStack nextItem = new ItemStack(nextItemMaterial1);
ItemMeta nextItemMeta = nextItem.getItemMeta();
nextItemMeta.setDisplayName(ChatColor.GOLD + "Улучшение: " + ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(newPath).getString("name")));
ArrayList nextItemLore = new ArrayList();
nextItemLore.add(ChatColor.BLACK + newPath);
Iterator var19 = Main.instance.itemsConfig.getConfigurationSection(newPath).getStringList("lore").iterator();
String s;
while(var19.hasNext()) {
s = (String)var19.next();
s = ChatColor.translateAlternateColorCodes('&', s);
nextItemLore.add(s);
}
nextItemLore.add(ChatColor.GREEN + "Цена: " + ChatColor.DARK_GREEN + Main.instance.itemsConfig.getConfigurationSection(newPath).getInt("price") + "$");
if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements")) {
nextItemLore.add(ChatColor.DARK_GREEN + "Необходимо:");
if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.blocks")) {
nextItemLore.add(ChatColor.GOLD + "Блоки:");
var19 = Main.instance.itemsConfig.getConfigurationSection(newPath + ".requirements.blocks").getKeys(false).iterator();
while(var19.hasNext()) {
s = (String)var19.next();
if(Blocks.getBlockBrokeAmount(p, s) >= Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s)) {
nextItemLore.add(ChatColor.GOLD + s + ": " + ChatColor.GREEN + Blocks.getBlockBrokeAmount(p, s) + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s));
} else {
nextItemLore.add(ChatColor.GOLD + s + ": " + ChatColor.RED + Blocks.getBlockBrokeAmount(p, s) + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s));
}
}
}
}
if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.rats")) {
if(Main.instance.levelsConfig.getInt(p.getName() + ".rats") >= Main.instance.itemsConfig.getInt(newPath + ".requirements.rats")) {
nextItemLore.add(ChatColor.RED + "Тюремные Крысы: " + ChatColor.GREEN + Main.instance.levelsConfig.getInt(p.getName() + ".rats") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.rats"));
} else {
nextItemLore.add(ChatColor.RED + "Тюремные Крысы: " + ChatColor.RED + Main.instance.levelsConfig.getInt(p.getName() + ".rats") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.rats"));
}
}
if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.zombie")) {
if(Main.instance.levelsConfig.getInt(p.getName() + ".zombie") >= Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie")) {
nextItemLore.add(ChatColor.BLUE + "Отсталые Зеки: " + ChatColor.GREEN + Main.instance.levelsConfig.getInt(p.getName() + ".zombie") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie"));
} else {
nextItemLore.add(ChatColor.BLUE + "Отсталые Зеки: " + ChatColor.RED + Main.instance.levelsConfig.getInt(p.getName() + ".zombie") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie"));
}
}
nextItemMeta.setLore(nextItemLore);
nextItem.setItemMeta(nextItemMeta);
if(Main.instance.itemsConfig.contains(newPath + ".enchantments")) {
var19 = Main.instance.itemsConfig.getConfigurationSection(newPath + ".enchantments").getKeys(false).iterator();
while(var19.hasNext()) {
s = (String)var19.next();
nextItem.addEnchantment(Enchantment.getByName(s), Main.instance.itemsConfig.getConfigurationSection(newPath + ".enchantments").getInt(s));
}
}
this.inv = Bukkit.getServer().createInventory((InventoryHolder)null, 9, ChatColor.GREEN + "Улучшение предмета");
this.inv.setItem(0, glass1);
this.inv.setItem(1, glass1);
this.inv.setItem(2, oldItem);
this.inv.setItem(3, glass1);
this.inv.setItem(4, glass1);
this.inv.setItem(5, glass1);
this.inv.setItem(6, nextItem);
this.inv.setItem(7, glass1);
this.inv.setItem(8, glass1);
p.openInventory(this.inv);
return true;
}
}
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
if(e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Улучшение предмета")) {
e.setCancelled(true);
Player p = (Player)e.getWhoClicked();
if(e.getCurrentItem().getItemMeta().hasDisplayName() && e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GOLD + "Улучшение:")) {
List playerLore = p.getItemInHand().getItemMeta().getLore();
List itemLore = e.getCurrentItem().getItemMeta().getLore();
int slot = p.getInventory().getHeldItemSlot();
p.getInventory().setHeldItemSlot(slot);
String pid = null;
String iid = null;
Iterator newItemMeta = playerLore.iterator();
String newItem;
if(newItemMeta.hasNext()) {
newItem = (String)newItemMeta.next();
pid = ChatColor.stripColor(newItem);
}
newItemMeta = itemLore.iterator();
if(newItemMeta.hasNext()) {
newItem = (String)newItemMeta.next();
iid = ChatColor.stripColor(newItem);
}
if(Main.instance.itemsConfig.getString(pid + ".next").equals(iid)) {
if(Main.econ.getBalance(p) >= (double)Main.instance.itemsConfig.getInt(iid + ".price")) {
if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements")) {
if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.blocks")) {
newItemMeta = Main.instance.itemsConfig.getConfigurationSection(iid + ".requirements.blocks").getKeys(false).iterator();
while(newItemMeta.hasNext()) {
newItem = (String)newItemMeta.next();
if(Blocks.getBlockBrokeAmount(p, newItem) < Main.instance.itemsConfig.getInt(iid + ".requirements.blocks." + newItem)) {
p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
p.closeInventory();
return;
}
}
}
if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.rats") && Main.instance.levelsConfig.getInt(p.getName() + ".rats") < Main.instance.itemsConfig.getInt(iid + ".requirements.rats")) {
p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
p.closeInventory();
return;
}
if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.zombie") && Main.instance.levelsConfig.getInt(p.getName() + ".zombie") < Main.instance.itemsConfig.getInt(iid + ".requirements.zombie")) {
p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
p.closeInventory();
return;
}
Main.econ.withdrawPlayer(p, (double)Main.instance.itemsConfig.getConfigurationSection(iid).getInt("price"));
ItemStack newItem1 = new ItemStack(Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(iid).getString("material")));
ItemMeta newItemMeta1 = newItem1.getItemMeta();
newItemMeta1.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(iid).getString("name")));
ArrayList lore = new ArrayList();
lore.add(ChatColor.BLACK + iid);
Iterator var12 = Main.instance.itemsConfig.getConfigurationSection(iid).getStringList("lore").iterator();
String slot2;
while(var12.hasNext()) {
slot2 = (String)var12.next();
lore.add(ChatColor.translateAlternateColorCodes('&', slot2));
}
newItemMeta1.setLore(lore);
newItemMeta1.spigot().setUnbreakable(true);
newItem1.setItemMeta(newItemMeta1);
if(Main.instance.itemsConfig.contains(iid + ".enchantments")) {
var12 = Main.instance.itemsConfig.getConfigurationSection(iid + ".enchantments").getKeys(false).iterator();
while(var12.hasNext()) {
slot2 = (String)var12.next();
newItem1.addEnchantment(Enchantment.getByName(slot2), Main.instance.itemsConfig.getConfigurationSection(iid + ".enchantments").getInt(slot2));
}
}
int slot21 = p.getInventory().getHeldItemSlot();
p.getInventory().setItem(slot21, newItem1);
p.closeInventory();
}
} else {
p.sendMessage("§6§l| Prison | §cУ Вас недостаточно денег!");
p.closeInventory();
}
} else {
p.closeInventory();
}
}
}
}
@EventHandler
public void onDeath(PlayerDeathEvent e) {
e.setKeepInventory(true);
}
@EventHandler
public void onInteract(PlayerInteractEvent e) {
if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getType().getMaxDurability() > 16 && !e.getItem().getItemMeta().spigot().isUnbreakable()) {
ItemStack item = e.getItem();
ItemMeta meta = item.getItemMeta();
meta.spigot().setUnbreakable(true);
item.setItemMeta(meta);
item.setDurability((short)0);
e.getPlayer().updateInventory();
}
}
@EventHandler
public void craftItem(PrepareItemCraftEvent e) {
e.getInventory().setResult(new ItemStack(Material.AIR));
}
}