SaveText.Ru

Без имени
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package me.gromfake.prison;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Material;
  11. import org.bukkit.command.Command;
  12. import org.bukkit.command.CommandExecutor;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.enchantments.Enchantment;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.EventHandler;
  17. import org.bukkit.event.Listener;
  18. import org.bukkit.event.entity.PlayerDeathEvent;
  19. import org.bukkit.event.inventory.InventoryClickEvent;
  20. import org.bukkit.event.inventory.PrepareItemCraftEvent;
  21. import org.bukkit.event.player.PlayerInteractEvent;
  22. import org.bukkit.inventory.Inventory;
  23. import org.bukkit.inventory.InventoryHolder;
  24. import org.bukkit.inventory.ItemStack;
  25. import org.bukkit.inventory.meta.ItemMeta;
  26.  
  27. import java.util.ArrayList;
  28. import java.util.Iterator;
  29. import java.util.List;
  30.  
  31. public class Upgrade implements CommandExecutor, Listener {
  32.         String id = null;
  33.         String iid = null;
  34.         String pid = null;
  35.         private Inventory inv;
  36.  
  37.         public Upgrade() {
  38.         }
  39.  
  40.         public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  41.                 Player p = (Player)sender;
  42.                 if(!command.getName().equalsIgnoreCase("upgrade")) {
  43.                         return true;
  44.                 } else if(p.getItemInHand().getType().equals(Material.AIR)) {
  45.                         p.sendMessage("§6§l| Prison | §cВы должны взять предмет в руку!");
  46.                         return true;
  47.                 } else if(p.getItemInHand().getItemMeta().getLore() == null) {
  48.                         p.sendMessage("§6§l| Prison | §cДанный предмет отличается от других! Он не может быть улучшен.");
  49.                         return true;
  50.                 } else {
  51.                         List lore = p.getItemInHand().getItemMeta().getLore();
  52.                         Iterator glassMeta = lore.iterator();
  53.                         String glass;
  54.                         if(glassMeta.hasNext()) {
  55.                                 glass = (String)glassMeta.next();
  56.                                 if(!glass.contains("" + ChatColor.BLACK)) {
  57.                                         p.sendMessage("§6§l| Prison | §cЭтот предмет не подлежит улучшению!");
  58.                                         return true;
  59.                                 }
  60.                         }
  61.                         for(glassMeta = Main.instance.itemsConfig.getKeys(false).iterator(); glassMeta.hasNext(); this.id = null) {
  62.                                 glass = (String)glassMeta.next();
  63.                                 if(lore.contains(ChatColor.BLACK + glass)) {
  64.                                         this.id = glass;
  65.                                         break;
  66.                                 }
  67.                         }
  68.  
  69.                         if(this.id == null) {
  70.                                 p.sendMessage("§6§l| Prison | §cЭтот предмет не подлежит улучшению!");
  71.                                 return true;
  72.                         } else if(!Main.instance.itemsConfig.contains(this.id + ".next")) {
  73.                                 p.sendMessage("§6§l| Prison | §aЭтот предмет максимально улучшен!");
  74.                                 return true;
  75.                         } else {
  76.                                 ItemStack glass1 = new ItemStack(Material.STAINED_GLASS_PANE);
  77.                                 ItemMeta glassMeta1 = glass1.getItemMeta();
  78.                                 glass1.setDurability((short)3);
  79.                                 glassMeta1.setDisplayName(" ");
  80.                                 glass1.setItemMeta(glassMeta1);
  81.                                 Material oldItemMaterial = Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(this.id).getString("material"));
  82.                                 ItemStack oldItem = new ItemStack(oldItemMaterial);
  83.                                 ItemMeta oldItemMeta = oldItem.getItemMeta();
  84.                                 oldItemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(this.id).getString("name")));
  85.                                 ArrayList oldItemLore = new ArrayList();
  86.                                 oldItemLore.add(ChatColor.BLACK + this.id);
  87.                                 Iterator nextItemMaterial = Main.instance.itemsConfig.getConfigurationSection(this.id).getStringList("lore").iterator();
  88.  
  89.                                 String newPath;
  90.                                 while(nextItemMaterial.hasNext()) {
  91.                                         newPath = (String)nextItemMaterial.next();
  92.                                         newPath = ChatColor.translateAlternateColorCodes('&', newPath);
  93.                                         oldItemLore.add(newPath);
  94.                                 }
  95.  
  96.                                 oldItemMeta.setLore(oldItemLore);
  97.                                 oldItem.setItemMeta(oldItemMeta);
  98.                                 if(Main.instance.itemsConfig.contains(this.id + ".enchantments")) {
  99.                                         nextItemMaterial = Main.instance.itemsConfig.getConfigurationSection(this.id + ".enchantments").getKeys(false).iterator();
  100.  
  101.                                         while(nextItemMaterial.hasNext()) {
  102.                                                 newPath = (String)nextItemMaterial.next();
  103.                                                 oldItem.addEnchantment(Enchantment.getByName(newPath), Main.instance.itemsConfig.getConfigurationSection(this.id + ".enchantments").getInt(newPath));
  104.                                         }
  105.                                 }
  106.  
  107.                                 newPath = Main.instance.itemsConfig.getConfigurationSection(this.id).getString("next");
  108.                                 Material nextItemMaterial1 = Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(newPath).getString("material"));
  109.                                 ItemStack nextItem = new ItemStack(nextItemMaterial1);
  110.                                 ItemMeta nextItemMeta = nextItem.getItemMeta();
  111.                                 nextItemMeta.setDisplayName(ChatColor.GOLD + "Улучшение: " + ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(newPath).getString("name")));
  112.                                 ArrayList nextItemLore = new ArrayList();
  113.                                 nextItemLore.add(ChatColor.BLACK + newPath);
  114.                                 Iterator var19 = Main.instance.itemsConfig.getConfigurationSection(newPath).getStringList("lore").iterator();
  115.  
  116.                                 String s;
  117.                                 while(var19.hasNext()) {
  118.                                         s = (String)var19.next();
  119.                                         s = ChatColor.translateAlternateColorCodes('&', s);
  120.                                         nextItemLore.add(s);
  121.                                 }
  122.  
  123.                                 nextItemLore.add(ChatColor.GREEN + "Цена: " + ChatColor.DARK_GREEN + Main.instance.itemsConfig.getConfigurationSection(newPath).getInt("price") + "$");
  124.                                 if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements")) {
  125.                                         nextItemLore.add(ChatColor.DARK_GREEN + "Необходимо:");
  126.                                         if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.blocks")) {
  127.                                                 nextItemLore.add(ChatColor.GOLD + "Блоки:");
  128.                                                 var19 = Main.instance.itemsConfig.getConfigurationSection(newPath + ".requirements.blocks").getKeys(false).iterator();
  129.  
  130.                                                 while(var19.hasNext()) {
  131.                                                         s = (String)var19.next();
  132.                                                         if(Blocks.getBlockBrokeAmount(p, s) >= Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s)) {
  133.                                                                 nextItemLore.add(ChatColor.GOLD + s + ": " + ChatColor.GREEN + Blocks.getBlockBrokeAmount(p, s) + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s));
  134.                                                         } else {
  135.                                                                 nextItemLore.add(ChatColor.GOLD + s + ": " + ChatColor.RED + Blocks.getBlockBrokeAmount(p, s) + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.blocks." + s));
  136.                                                         }
  137.                                                 }
  138.                                         }
  139.                                 }
  140.  
  141.                                 if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.rats")) {
  142.                                         if(Main.instance.levelsConfig.getInt(p.getName() + ".rats") >= Main.instance.itemsConfig.getInt(newPath + ".requirements.rats")) {
  143.                                                 nextItemLore.add(ChatColor.RED + "Тюремные Крысы: " + ChatColor.GREEN + Main.instance.levelsConfig.getInt(p.getName() + ".rats") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.rats"));
  144.                                         } else {
  145.                                                 nextItemLore.add(ChatColor.RED + "Тюремные Крысы: " + ChatColor.RED + Main.instance.levelsConfig.getInt(p.getName() + ".rats") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.rats"));
  146.                                         }
  147.                                 }
  148.  
  149.                                 if(Main.instance.itemsConfig.getConfigurationSection(newPath).contains("requirements.zombie")) {
  150.                                         if(Main.instance.levelsConfig.getInt(p.getName() + ".zombie") >= Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie")) {
  151.                                                 nextItemLore.add(ChatColor.BLUE + "Отсталые Зеки: " + ChatColor.GREEN + Main.instance.levelsConfig.getInt(p.getName() + ".zombie") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie"));
  152.                                         } else {
  153.                                                 nextItemLore.add(ChatColor.BLUE + "Отсталые Зеки: " + ChatColor.RED + Main.instance.levelsConfig.getInt(p.getName() + ".zombie") + "/" + Main.instance.itemsConfig.getInt(newPath + ".requirements.zombie"));
  154.                                         }
  155.                                 }
  156.  
  157.  
  158.                                 nextItemMeta.setLore(nextItemLore);
  159.                                 nextItem.setItemMeta(nextItemMeta);
  160.                                 if(Main.instance.itemsConfig.contains(newPath + ".enchantments")) {
  161.                                         var19 = Main.instance.itemsConfig.getConfigurationSection(newPath + ".enchantments").getKeys(false).iterator();
  162.  
  163.                                         while(var19.hasNext()) {
  164.                                                 s = (String)var19.next();
  165.                                                 nextItem.addEnchantment(Enchantment.getByName(s), Main.instance.itemsConfig.getConfigurationSection(newPath + ".enchantments").getInt(s));
  166.                                         }
  167.                                 }
  168.  
  169.                                 this.inv = Bukkit.getServer().createInventory((InventoryHolder)null, 9, ChatColor.GREEN + "Улучшение предмета");
  170.                                 this.inv.setItem(0, glass1);
  171.                                 this.inv.setItem(1, glass1);
  172.                                 this.inv.setItem(2, oldItem);
  173.                                 this.inv.setItem(3, glass1);
  174.                                 this.inv.setItem(4, glass1);
  175.                                 this.inv.setItem(5, glass1);
  176.                                 this.inv.setItem(6, nextItem);
  177.                                 this.inv.setItem(7, glass1);
  178.                                 this.inv.setItem(8, glass1);
  179.                                 p.openInventory(this.inv);
  180.                                 return true;
  181.                         }
  182.                 }
  183.         }
  184.  
  185.         @EventHandler
  186.         public void onInventoryClick(InventoryClickEvent e) {
  187.                 if(e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Улучшение предмета")) {
  188.                         e.setCancelled(true);
  189.                         Player p = (Player)e.getWhoClicked();
  190.                         if(e.getCurrentItem().getItemMeta().hasDisplayName() && e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GOLD + "Улучшение:")) {
  191.                                 List playerLore = p.getItemInHand().getItemMeta().getLore();
  192.                                 List itemLore = e.getCurrentItem().getItemMeta().getLore();
  193.                                 int slot = p.getInventory().getHeldItemSlot();
  194.                                 p.getInventory().setHeldItemSlot(slot);
  195.                                 String pid = null;
  196.                                 String iid = null;
  197.                                 Iterator newItemMeta = playerLore.iterator();
  198.                                 String newItem;
  199.                                 if(newItemMeta.hasNext()) {
  200.                                         newItem = (String)newItemMeta.next();
  201.                                         pid = ChatColor.stripColor(newItem);
  202.                                 }
  203.  
  204.                                 newItemMeta = itemLore.iterator();
  205.                                 if(newItemMeta.hasNext()) {
  206.                                         newItem = (String)newItemMeta.next();
  207.                                         iid = ChatColor.stripColor(newItem);
  208.                                 }
  209.  
  210.                                 if(Main.instance.itemsConfig.getString(pid + ".next").equals(iid)) {
  211.                                         if(Main.econ.getBalance(p) >= (double)Main.instance.itemsConfig.getInt(iid + ".price")) {
  212.                                                 if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements")) {
  213.                                                         if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.blocks")) {
  214.                                                                 newItemMeta = Main.instance.itemsConfig.getConfigurationSection(iid + ".requirements.blocks").getKeys(false).iterator();
  215.  
  216.                                                                 while(newItemMeta.hasNext()) {
  217.                                                                         newItem = (String)newItemMeta.next();
  218.                                                                         if(Blocks.getBlockBrokeAmount(p, newItem) < Main.instance.itemsConfig.getInt(iid + ".requirements.blocks." + newItem)) {
  219.                                                                                 p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
  220.                                                                                 p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
  221.                                                                                 p.closeInventory();
  222.                                                                                 return;
  223.                                                                         }
  224.                                                                 }
  225.                                                         }
  226.  
  227.                                                         if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.rats") && Main.instance.levelsConfig.getInt(p.getName() + ".rats") < Main.instance.itemsConfig.getInt(iid + ".requirements.rats")) {
  228.                                                                 p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
  229.                                                                 p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
  230.                                                                 p.closeInventory();
  231.                                                                 return;
  232.                                                         }
  233.  
  234.                                                         if(Main.instance.itemsConfig.getConfigurationSection(iid).contains("requirements.zombie") && Main.instance.levelsConfig.getInt(p.getName() + ".zombie") < Main.instance.itemsConfig.getInt(iid + ".requirements.zombie")) {
  235.                                                                 p.sendMessage("§6§l| Prison | §cТребования не выполнены.");
  236.                                                                 p.sendTitle(ChatColor.RED + "Требования не выполнены.","");
  237.                                                                 p.closeInventory();
  238.                                                                 return;
  239.                                                         }
  240.  
  241.                                                         Main.econ.withdrawPlayer(p, (double)Main.instance.itemsConfig.getConfigurationSection(iid).getInt("price"));
  242.                                                         ItemStack newItem1 = new ItemStack(Material.getMaterial(Main.instance.itemsConfig.getConfigurationSection(iid).getString("material")));
  243.                                                         ItemMeta newItemMeta1 = newItem1.getItemMeta();
  244.                                                         newItemMeta1.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.instance.itemsConfig.getConfigurationSection(iid).getString("name")));
  245.                                                         ArrayList lore = new ArrayList();
  246.                                                         lore.add(ChatColor.BLACK + iid);
  247.                                                         Iterator var12 = Main.instance.itemsConfig.getConfigurationSection(iid).getStringList("lore").iterator();
  248.  
  249.                                                         String slot2;
  250.                                                         while(var12.hasNext()) {
  251.                                                                 slot2 = (String)var12.next();
  252.                                                                 lore.add(ChatColor.translateAlternateColorCodes('&', slot2));
  253.                                                         }
  254.  
  255.                                                         newItemMeta1.setLore(lore);
  256.                                                         newItemMeta1.spigot().setUnbreakable(true);
  257.                                                         newItem1.setItemMeta(newItemMeta1);
  258.                                                         if(Main.instance.itemsConfig.contains(iid + ".enchantments")) {
  259.                                                                 var12 = Main.instance.itemsConfig.getConfigurationSection(iid + ".enchantments").getKeys(false).iterator();
  260.  
  261.                                                                 while(var12.hasNext()) {
  262.                                                                         slot2 = (String)var12.next();
  263.                                                                         newItem1.addEnchantment(Enchantment.getByName(slot2), Main.instance.itemsConfig.getConfigurationSection(iid + ".enchantments").getInt(slot2));
  264.                                                                 }
  265.                                                         }
  266.  
  267.                                                         int slot21 = p.getInventory().getHeldItemSlot();
  268.                                                         p.getInventory().setItem(slot21, newItem1);
  269.                                                         p.closeInventory();
  270.                                                 }
  271.                                         } else {
  272.                                                 p.sendMessage("§6§l| Prison | §cУ Вас недостаточно денег!");
  273.                                                 p.closeInventory();
  274.                                         }
  275.                                 } else {
  276.                                         p.closeInventory();
  277.                                 }
  278.                         }
  279.                 }
  280.  
  281.         }
  282.  
  283.         @EventHandler
  284.         public void onDeath(PlayerDeathEvent e) {
  285.                 e.setKeepInventory(true);
  286.         }
  287.  
  288.         @EventHandler
  289.         public void onInteract(PlayerInteractEvent e) {
  290.                 if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getType().getMaxDurability() > 16 && !e.getItem().getItemMeta().spigot().isUnbreakable()) {
  291.                         ItemStack item = e.getItem();
  292.                         ItemMeta meta = item.getItemMeta();
  293.                         meta.spigot().setUnbreakable(true);
  294.                         item.setItemMeta(meta);
  295.                         item.setDurability((short)0);
  296.                         e.getPlayer().updateInventory();
  297.                 }
  298.  
  299.         }
  300.         @EventHandler
  301.         public void craftItem(PrepareItemCraftEvent e) {
  302.                 e.getInventory().setResult(new ItemStack(Material.AIR));
  303.         }
  304. }
  305.  

Share with your friends:

Распечатать