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 me.gromfake.API.SM;
  9. import me.gromfake.commands.GompCMD;
  10. import me.gromfake.menus.GUIprofile;
  11. import me.gromfake.mines.Items;
  12. import net.md_5.bungee.api.chat.ClickEvent;
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.ChatColor;
  15. import org.bukkit.Material;
  16. import org.bukkit.OfflinePlayer;
  17. import org.bukkit.command.Command;
  18. import org.bukkit.command.CommandExecutor;
  19. import org.bukkit.command.CommandSender;
  20. import org.bukkit.entity.EntityType;
  21. import org.bukkit.entity.Item;
  22. import org.bukkit.entity.Player;
  23. import org.bukkit.entity.Projectile;
  24. import org.bukkit.event.EventHandler;
  25. import org.bukkit.event.EventPriority;
  26. import org.bukkit.event.Listener;
  27. import org.bukkit.event.block.Action;
  28. import org.bukkit.event.block.BlockBreakEvent;
  29. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  30. import org.bukkit.event.entity.PlayerDeathEvent;
  31. import org.bukkit.event.inventory.InventoryClickEvent;
  32. import org.bukkit.event.player.*;
  33. import org.bukkit.event.player.PlayerFishEvent.State;
  34. import org.bukkit.inventory.Inventory;
  35. import org.bukkit.inventory.InventoryHolder;
  36. import org.bukkit.inventory.ItemStack;
  37. import org.bukkit.inventory.meta.ItemMeta;
  38. import org.bukkit.potion.PotionEffect;
  39. import org.bukkit.potion.PotionEffectType;
  40.  
  41. import java.util.ArrayList;
  42. import java.util.HashMap;
  43. import java.util.Iterator;
  44. import java.util.Random;
  45.  
  46. public class Levels implements Listener, CommandExecutor {
  47.         public static HashMap<String, Integer> levels = new HashMap();
  48.         public static HashMap<String, Integer> scoreboard = new HashMap();
  49.         public static HashMap<String, Integer> blocks = new HashMap();
  50.         public static HashMap<String, Integer> kills = new HashMap();
  51.         public static HashMap<String, Integer> deaths = new HashMap();
  52.         public static HashMap<String, Integer> drugs = new HashMap();
  53.         public static HashMap<String, Integer> donatemoney = new HashMap();
  54.         public static HashMap<String, Integer> age = new HashMap();
  55.         public static HashMap<String, Integer> sex = new HashMap();
  56.         public static HashMap<String, Integer> passport = new HashMap();
  57.         public static HashMap<String, String> faction = new HashMap();
  58.         public static HashMap<String, String> jobs = new HashMap();
  59.         public static HashMap<String, String> city = new HashMap();
  60.         public static HashMap<String, String> country = new HashMap();
  61.         public static HashMap<String, String> msg = new HashMap();
  62.         public static HashMap<String, String> state = new HashMap();
  63.         private Inventory inv;
  64.  
  65.         String for_owners = SM.prefix + "§cЭта команда доступна только §4Владельцам §cи выше!";
  66.         public Levels() {
  67.         }
  68.  
  69.         public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  70.                 Player p = (Player)sender;
  71.                         if(args.length == 3 && args[0].equalsIgnoreCase("set")) {
  72.                                 if(p.hasPermission("prison.owner")) {
  73.                                         levels.put(args[1], Integer.valueOf(args[2]));
  74.                                         p.sendMessage(SM.prefix + "§7Уровень игрока §9" + args[1] + "§7 установлен на §9" + args[2]);
  75.                                         return true;
  76.                                 } else {
  77.                                         p.sendMessage(for_owners);
  78.                                         return true;
  79.                                 }
  80.                         } else if(getLevel(p) >= Main.instance.getConfig().getInt("MaxLevel")) {
  81.                                 p.sendMessage(SM.prefix + "§7Вы достигли максимального уровня!");
  82.                                 return true;
  83.                         } else {
  84.                                 ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE,1,(short)15);
  85.                                 ItemMeta meta = glass.getItemMeta();
  86.                                 meta.setDisplayName(" ");
  87.                                 glass.setItemMeta(meta);
  88.  
  89.                                 ItemStack lvlup = new ItemStack(Material.EXP_BOTTLE);
  90.                                 ItemMeta lvlupmeta = lvlup.getItemMeta();
  91.                                 lvlupmeta.setDisplayName(ChatColor.GREEN + "Повысить уровень!");
  92.                                 lvlup.setItemMeta(lvlupmeta);
  93.                                 ItemStack lvlInfo = new ItemStack(Material.MAP);
  94.                                 ItemMeta lvlInfoMeta = lvlInfo.getItemMeta();
  95.                                 lvlInfoMeta.setDisplayName(ChatColor.GREEN + "Информация");
  96.                                 ArrayList lore = new ArrayList();
  97.                                 lore.add(ChatColor.GOLD + "Ваш уровень: " + ChatColor.GREEN + getLevel(p));
  98.                                 lore.add(ChatColor.GOLD + "Стоимость след. уровня: " + ChatColor.GREEN + Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".price"));
  99.                                 if(((Integer)blocks.get(p.getName())).intValue() >= Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".blocks")) {
  100.                                         lore.add(ChatColor.GOLD + "Необходимо блоков: " + ChatColor.GREEN + blocks.get(p.getName()) + "/" + Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".blocks"));
  101.                                 } else {
  102.                                         lore.add(ChatColor.GOLD + "Необходимо блоков: " + ChatColor.RED + blocks.get(p.getName()) + "/" + Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".blocks"));
  103.                                 }
  104.  
  105.                                 if(Main.instance.getConfig().contains("levels." + getNextLevel(p) + ".extraDMG")) {
  106.                                         lore.add(ChatColor.GOLD + "Доп. Урон: " + ChatColor.RED + Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".extraDMG"));
  107.                                 }
  108.  
  109.                                 lvlInfoMeta.setLore(lore);
  110.                                 lvlInfo.setItemMeta(lvlInfoMeta);
  111.                                 this.inv = Bukkit.getServer().createInventory((InventoryHolder)null, 9, ChatColor.GREEN + "Повышение уровня");
  112.                 ItemStack yes = new ItemStack(Material.STAINED_GLASS_PANE,1,(short)5);
  113.                 ItemMeta yesmeta = yes.getItemMeta();
  114.                 yesmeta.setDisplayName("§a§lh");
  115.                 yes.setItemMeta(meta);
  116.  
  117.  
  118.                 ItemStack no = new ItemStack(Material.BARRIER);
  119.                 ItemMeta nometa = no.getItemMeta();
  120.                 nometa.setDisplayName("§c§lk");
  121.                 no.setItemMeta(meta);
  122.  
  123.                 if(Main.econ.getBalance(p) >= (double)Main.instance.getConfig().getInt("levels." + Levels.getNextLevel(p) + ".price")
  124.                         &&(Levels.blocks.get(p.getName())) >= Main.instance.getConfig().getInt("levels." + Levels.getNextLevel(p) + ".blocks")){
  125.                     this.inv.setItem(0, glass);
  126.                     this.inv.setItem(1, glass);
  127.                     this.inv.setItem(2, glass);
  128.                     this.inv.setItem(3, lvlup);
  129.                     this.inv.setItem(4, yes);
  130.                     this.inv.setItem(5, lvlInfo);
  131.                     this.inv.setItem(6, glass);
  132.                     this.inv.setItem(7, glass);
  133.                     this.inv.setItem(8, glass);
  134.                 } else {
  135.                     this.inv.setItem(0, glass);
  136.                     this.inv.setItem(1, glass);
  137.                     this.inv.setItem(2, glass);
  138.                     this.inv.setItem(3, lvlup);
  139.                     this.inv.setItem(4, no);
  140.                     this.inv.setItem(5, lvlInfo);
  141.                     this.inv.setItem(6, glass);
  142.                     this.inv.setItem(7, glass);
  143.                     this.inv.setItem(8, glass);
  144.                 }
  145.                                 p.openInventory(this.inv);
  146.                                 return true;
  147.                         }
  148.                 }
  149.  
  150.         @EventHandler
  151.         public void onJoin(PlayerJoinEvent e) {
  152.                 Player p = e.getPlayer();
  153.                 GompCMD.mp.put(p.getName(),false);
  154.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".level")) {
  155.                         levels.put(p.getName(), Integer.valueOf(1));
  156.                 } else {
  157.                         levels.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".level")));
  158.                 }
  159.  
  160.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".kills")) {
  161.                         kills.put(p.getName(), Integer.valueOf(0));
  162.                 } else {
  163.                         kills.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".kills")));
  164.                 }
  165.  
  166.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".deaths")) {
  167.                         deaths.put(p.getName(), Integer.valueOf(0));
  168.                 } else {
  169.                         deaths.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".deaths")));
  170.                 }
  171.  
  172.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".blocks")) {
  173.                         blocks.put(p.getName(), Integer.valueOf(0));
  174.                 } else {
  175.                         blocks.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".blocks")));
  176.                 }
  177.  
  178.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".scoreboard")) {
  179.                         scoreboard.put(p.getName(), Integer.valueOf(0));
  180.                 } else {
  181.                         scoreboard.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".scoreboard")));
  182.                 }
  183.  
  184.  
  185.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".drugs")) {
  186.                         drugs.put(p.getName(), Integer.valueOf(0));
  187.                 } else {
  188.                         drugs.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".drugs")));
  189.                 }
  190.  
  191.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".donatemoney")) {
  192.                         donatemoney.put(p.getName(), Integer.valueOf(0));
  193.                 } else {
  194.                         donatemoney.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".donatemoney")));
  195.                 }
  196.  
  197.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".age")) {
  198.                         age.put(p.getName(), Integer.valueOf(0));
  199.                 } else {
  200.                         age.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".age")));
  201.                 }
  202.  
  203.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".sex")) {
  204.                         sex.put(p.getName(), Integer.valueOf(0));
  205.                 } else {
  206.                         sex.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".sex")));
  207.                 }
  208.  
  209.                 if(!Main.instance.levelsConfig.contains(p.getName() + ".passport")) {
  210.                         passport.put(p.getName(), Integer.valueOf(0));
  211.                 } else {
  212.                         passport.put(p.getName(), Integer.valueOf(Main.instance.levelsConfig.getInt(p.getName() + ".passport")));
  213.                 }
  214.  
  215.  
  216.                 if(Main.instance.levelsConfig.contains(p.getName() + ".faction")) {
  217.                         faction.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".faction"));
  218.                 }
  219.  
  220.                 if(Main.instance.levelsConfig.contains(p.getName() + ".jobs")) {
  221.                         jobs.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".jobs"));
  222.                 }
  223.  
  224.                 if(Main.instance.levelsConfig.contains(p.getName() + ".city")) {
  225.                         city.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".city"));
  226.                 }
  227.  
  228.                 if(Main.instance.levelsConfig.contains(p.getName() + ".country")) {
  229.                         country.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".country"));
  230.                 }
  231.  
  232.                 if(Main.instance.levelsConfig.contains(p.getName() + ".msg")) {
  233.                         msg.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".msg"));
  234.                 }
  235.  
  236.                 if(Main.instance.levelsConfig.contains(p.getName() + ".state")) {
  237.                         state.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".state"));
  238.                 }
  239.  
  240.                 if(Main.instance.friendsConfig.contains(p.getName() + ".friends")) {
  241.                         state.put(p.getName(), Main.instance.levelsConfig.getString(p.getName() + ".friends"));
  242.                 }
  243.  
  244.                 p.setMaxHealth((double)(18 + getLevel(p) * 2));
  245.         }
  246.  
  247.         @EventHandler(
  248.                         priority = EventPriority.HIGHEST,
  249.                         ignoreCancelled = false
  250.         )
  251.         public void onBlockBreak(BlockBreakEvent e) {
  252.                 Player p = e.getPlayer();
  253.                 if(!e.isCancelled() && !e.getBlock().getType().isTransparent()) {
  254.             if (blocks.containsKey(p.getName())) {
  255.                 blocks.put(p.getName(), blocks.get(p.getName()) + Blocks.getBoost(p));
  256.             } else {
  257.                 blocks.put(p.getName(), 0);
  258.             }
  259.                 }
  260.  
  261.         }
  262.  
  263.         @EventHandler(
  264.                         priority = EventPriority.HIGHEST,
  265.                         ignoreCancelled = false
  266.         )
  267.         public void onInteract(PlayerInteractEvent e) {
  268.                 Player p = e.getPlayer();
  269.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Таинственная шахта") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".book")) {
  270.                         Main.instance.levelsConfig.set(p.getName() + ".book", Boolean.valueOf(true));
  271.                         p.sendMessage(ChatColor.GREEN + "Вы получили доступ к "+ChatColor.RED+ChatColor.BOLD+"Пещере");
  272.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  273.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  274.                         } else {
  275.                                 p.setItemInHand(new ItemStack(Material.AIR));
  276.                         }
  277.  
  278.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Таинственная шахта") && Main.instance.levelsConfig.getBoolean(p.getName() + ".book")) {
  279.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к "+ChatColor.RED+ChatColor.BOLD+"Пещере");
  280.                 }
  281.  
  282.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Мир Иллюзий") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".magic")) {
  283.                         Main.instance.levelsConfig.set(p.getName() + ".magic", Boolean.valueOf(true));
  284.                         p.sendMessage(ChatColor.YELLOW + "Вы получили доступ к "+ChatColor.DARK_PURPLE+ChatColor.BOLD+"Миру Иллюзий");
  285.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  286.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  287.                         } else {
  288.                                 p.setItemInHand(new ItemStack(Material.AIR));
  289.                         }
  290.  
  291.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Мир Иллюзий") && Main.instance.levelsConfig.getBoolean(p.getName() + ".magic")) {
  292.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к " + ChatColor.DARK_PURPLE + ChatColor.BOLD + "Миру Иллюзий.");
  293.                 }
  294.  
  295.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Рай") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".ray")) {
  296.                         Main.instance.levelsConfig.set(p.getName() + ".ray", Boolean.valueOf(true));
  297.                         p.sendMessage(ChatColor.YELLOW + "Вы получили доступ к "+ChatColor.AQUA+ChatColor.BOLD+"Раю");
  298.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  299.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  300.                         } else {
  301.                                 p.setItemInHand(new ItemStack(Material.AIR));
  302.                         }
  303.  
  304.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Рай") && Main.instance.levelsConfig.getBoolean(p.getName() + ".ray")) {
  305.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к " + ChatColor.AQUA + ChatColor.BOLD + "Раю.");
  306.                 }
  307.  
  308.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Адская Крепость") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".ad")) {
  309.                         Main.instance.levelsConfig.set(p.getName() + ".ad", Boolean.valueOf(true));
  310.                         p.sendMessage(ChatColor.YELLOW + "Вы получили доступ к "+ChatColor.DARK_RED+ChatColor.BOLD+"Аду");
  311.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  312.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  313.                         } else {
  314.                                 p.setItemInHand(new ItemStack(Material.AIR));
  315.                         }
  316.  
  317.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Адская Крепость") && Main.instance.levelsConfig.getBoolean(p.getName() + ".ad")) {
  318.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к " + ChatColor.DARK_RED + ChatColor.BOLD + "Аду.");
  319.                 }
  320.  
  321.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Водяной Мир") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".water")) {
  322.                         Main.instance.levelsConfig.set(p.getName() + ".water", Boolean.valueOf(true));
  323.                         p.sendMessage(ChatColor.YELLOW + "Вы получили доступ к "+ChatColor.BLUE+ChatColor.BOLD+"Водяному Миру");
  324.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  325.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  326.                         } else {
  327.                                 p.setItemInHand(new ItemStack(Material.AIR));
  328.                         }
  329.  
  330.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Водяной Мир") && Main.instance.levelsConfig.getBoolean(p.getName() + ".water")) {
  331.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к " + ChatColor.BLUE + ChatColor.BOLD + "Водяному Миру.");
  332.                 }
  333.  
  334.                 if(e.getItem()!=null && e.getItem().hasItemMeta() && e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Северный Лес") && !Main.instance.levelsConfig.getBoolean(p.getName() + ".sever")) {
  335.                         Main.instance.levelsConfig.set(p.getName() + ".sever", Boolean.valueOf(true));
  336.                         p.sendMessage(ChatColor.YELLOW + "Вы получили доступ к "+ChatColor.GRAY+ChatColor.BOLD+"Северному Лесу");
  337.                         if(p.getInventory().getItemInHand().getAmount() > 1) {
  338.                                 p.getInventory().getItemInHand().setAmount(p.getInventory().getItemInHand().getAmount() - 1);
  339.                         } else {
  340.                                 p.setItemInHand(new ItemStack(Material.AIR));
  341.                         }
  342.  
  343.                 } else if(e.getItem()!=null && e.getItem().hasItemMeta() &&e.getItem().getItemMeta().hasDisplayName() && e.getItem().getItemMeta().getDisplayName().contains("Северный Лес") && Main.instance.levelsConfig.getBoolean(p.getName() + ".sever")) {
  344.                         p.sendMessage(ChatColor.RED + "У Вас уже есть доступ к " + ChatColor.GRAY + ChatColor.BOLD + "Северному лесу");
  345.                 }
  346.         }
  347.  
  348.         @EventHandler
  349.         public void onInventoryClick(InventoryClickEvent e) {
  350.                 if(e.getInventory().getName().equalsIgnoreCase(ChatColor.GREEN + "Повышение уровня")) {
  351.                         if(e.getCurrentItem().getItemMeta().getLore() == null) {
  352.                                 e.setCancelled(true);
  353.                         }
  354.  
  355.                         Player p = (Player)e.getWhoClicked();
  356.                         e.setCancelled(true);
  357.                         if(e.getCurrentItem().getType().equals(Material.EXP_BOTTLE)) {
  358.                                 if(Main.econ.getBalance(p) >= (double)Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".price")) {
  359.                                         if(((Integer)blocks.get(p.getName())).intValue() >= Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".blocks")) {
  360.                                                 p.sendMessage("§6§l| Prison | §aВы успешно повысили свой уровень!");
  361.                                                 p.sendTitle(ChatColor.GREEN + "Ваш уровень успешно повышен" , ChatColor.GOLD + "Так держать , развивайся до следующего");
  362.                                                 Main.econ.withdrawPlayer(p, (double)Main.instance.getConfig().getInt("levels." + getNextLevel(p) + ".price"));
  363.                                                 levels.put(p.getName(), Integer.valueOf(getLevel(p) + 1));
  364.                                                 p.setMaxHealth((double)(18 + getLevel(p) * 2));
  365.                                                 PrisonScoreBoard.updateScoreboard(p);
  366.                                                 p.closeInventory();
  367.                                         } else {
  368.                                                 p.sendMessage(ChatColor.RED + "§6§l| Prison | §cТребования не выполнены!");
  369.                                                 p.sendTitle(ChatColor.RED + "Требования не выполнены" , "");
  370.                                                 p.closeInventory();
  371.                                         }
  372.                                 } else {
  373.                                         p.sendMessage(ChatColor.RED + "§6§l| Prison | §cУ Вас недостаточно денег!");
  374.                                         p.sendTitle(ChatColor.RED + "У вас не хватает денег" , ChatColor.GOLD + "Проверьте ваш баланс");
  375.                                         p.closeInventory();
  376.                                 }
  377.                         }
  378.                 }
  379.  
  380.         }
  381.  
  382.         public static int getLevel(Player p) {
  383.                 int level;
  384.                 if(!p.isOnline()) {
  385.                         level = Main.instance.levelsConfig.getInt(p.getName() + ".level");
  386.                         return level;
  387.                 } else {
  388.                         level = levels.get(p.getName());
  389.                         return level;
  390.                 }
  391.         }
  392.  
  393.         public static int getNextLevel(Player p) {
  394.                 int level;
  395.                 if(!p.isOnline()) {
  396.                         level = Main.instance.levelsConfig.getInt(p.getName() + ".level") + 1;
  397.                         return level;
  398.                 } else {
  399.                         level = levels.get(p.getName()) + 1;
  400.                         return level;
  401.                 }
  402.         }
  403.  
  404.         public static int getBlocks(Player p) {
  405.                 int blocksAmount;
  406.                 if(!p.isOnline()) {
  407.                         blocksAmount = Main.instance.levelsConfig.getInt(p.getName() + ".blocks");
  408.                         return blocksAmount;
  409.                 } else {
  410.                         blocksAmount = ((Integer)blocks.get(p.getName())).intValue();
  411.                         return blocksAmount;
  412.                 }
  413.         }
  414.  
  415.         public static int getDonateMoney(Player p) {
  416.                 int dmAmount;
  417.                 if(!p.isOnline()) {
  418.                         dmAmount = Main.instance.levelsConfig.getInt(p.getName() + ".donatemoney");
  419.                         return dmAmount;
  420.                 } else {
  421.                         dmAmount = ((Integer)donatemoney.get(p.getName())).intValue();
  422.                         return dmAmount;
  423.                 }
  424.         }
  425.  
  426.         public static int getKills(Player p) {
  427.                 int killsAmount;
  428.                 if(!p.isOnline()) {
  429.                         killsAmount = Main.instance.levelsConfig.getInt(p.getName() + ".kills");
  430.                         return killsAmount;
  431.                 } else {
  432.                         killsAmount = ((Integer)kills.get(p.getName())).intValue();
  433.                         return killsAmount;
  434.                 }
  435.         }
  436.  
  437.         public static int getDeaths(Player p) {
  438.                 int deathsAmount;
  439.                 if(!p.isOnline()) {
  440.                         deathsAmount = Main.instance.levelsConfig.getInt(p.getName() + ".deaths");
  441.                         return deathsAmount;
  442.                 } else {
  443.                         deathsAmount = ((Integer)deaths.get(p.getName())).intValue();
  444.                         return deathsAmount;
  445.                 }
  446.         }
  447.  
  448.         public static int getScoreBoard(Player p) {
  449.                 int sbAmount;
  450.                 if(!p.isOnline()) {
  451.                         sbAmount = Main.instance.levelsConfig.getInt(p.getName() + ".scoreboard");
  452.                         return sbAmount;
  453.                 } else {
  454.                         sbAmount = ((Integer)scoreboard.get(p.getName())).intValue();
  455.                         return sbAmount;
  456.                 }
  457.         }
  458.         public static int getDrugs(Player p) {
  459.                 int drugsAmount;
  460.                 if(!p.isOnline()) {
  461.                         drugsAmount = Main.instance.levelsConfig.getInt(p.getName() + ".drugs");
  462.                         return drugsAmount;
  463.                 } else {
  464.                         drugsAmount = ((Integer) drugs.get(p.getName())).intValue();
  465.                         return drugsAmount;
  466.                 }
  467.         }
  468.         public static int getAge(Player p) {
  469.                 int ageAmount;
  470.                 if(!p.isOnline()) {
  471.                         ageAmount = Main.instance.levelsConfig.getInt(p.getName() + ".age");
  472.                         return ageAmount;
  473.                 } else {
  474.                         ageAmount = ((Integer) age.get(p.getName())).intValue();
  475.                         return ageAmount;
  476.                 }
  477.         }
  478.         public static int getPassport(Player p) {
  479.                 int passportAmount;
  480.                 if(!p.isOnline()) {
  481.                         passportAmount = Main.instance.levelsConfig.getInt(p.getName() + ".passport");
  482.                         return passportAmount;
  483.                 } else {
  484.                         passportAmount = ((Integer) passport.get(p.getName())).intValue();
  485.                         return passportAmount;
  486.                 }
  487.         }
  488.         public static int getSex(Player p) {
  489.                 int sexAmount;
  490.                 if(!p.isOnline()) {
  491.                         sexAmount = Main.instance.levelsConfig.getInt(p.getName() + ".sex");
  492.                         return sexAmount;
  493.                 } else {
  494.                         sexAmount = ((Integer) sex.get(p.getName())).intValue();
  495.                         return sexAmount;
  496.                 }
  497.         }
  498.  
  499.         public static String getFaction(OfflinePlayer p) {
  500.                 if(p!= null && !p.isOnline()) {
  501.                         return Main.instance.levelsConfig.contains(p.getName() + ".faction")?Main.instance.levelsConfig.getString(p.getName() + ".faction"):"";
  502.                 } else if(p!= null && faction.containsKey(p.getName())) {
  503.                         String playerFaction = (String)faction.get(p.getName());
  504.                         return playerFaction;
  505.                 } else {
  506.                         return "";
  507.                 }
  508.         }
  509.  
  510.         public static String getJobs(OfflinePlayer p) {
  511.                 if(p!= null && !p.isOnline()) {
  512.                         return Main.instance.levelsConfig.contains(p.getName() + ".jobs")?Main.instance.levelsConfig.getString(p.getName() + ".jobs"):"";
  513.                 } else if(jobs.containsKey(p.getName())) {
  514.                         String playerJob = (String)jobs.get(p.getName());
  515.                         return playerJob;
  516.                 } else {
  517.                         return "";
  518.                 }
  519.         }
  520.  
  521.         public static String getCity(OfflinePlayer p) {
  522.                 if(p!= null && !p.isOnline()) {
  523.                         return Main.instance.levelsConfig.contains(p.getName() + ".city")?Main.instance.levelsConfig.getString(p.getName() + ".city"):"";
  524.                 } else if(city.containsKey(p.getName())) {
  525.                         String playerCity = (String) city.get(p.getName());
  526.                         return playerCity;
  527.                 } else {
  528.                         return "";
  529.                 }
  530.         }
  531.  
  532.         public static String getCountry(OfflinePlayer p) {
  533.                 if(p!= null && !p.isOnline()) {
  534.                         return Main.instance.levelsConfig.contains(p.getName() + ".country")?Main.instance.levelsConfig.getString(p.getName() + ".country"):"";
  535.                 } else if(country.containsKey(p.getName())) {
  536.                         String playercountry = (String) country.get(p.getName());
  537.                         return playercountry;
  538.                 } else {
  539.                         return "";
  540.                 }
  541.         }
  542.  
  543.         public static String getMsg(OfflinePlayer p) {
  544.                 if(p!= null && !p.isOnline()) {
  545.                         return Main.instance.levelsConfig.contains(p.getName() + ".msg")?Main.instance.levelsConfig.getString(p.getName() + ".msg"):"";
  546.                 } else if(msg.containsKey(p.getName())) {
  547.                         String playermsg = (String) msg.get(p.getName());
  548.                         return playermsg;
  549.                 } else {
  550.                         return "";
  551.                 }
  552.         }
  553.         public static String getState(OfflinePlayer p) {
  554.                 if(p!= null && !p.isOnline()) {
  555.                         return Main.instance.levelsConfig.contains(p.getName() + ".state")?Main.instance.levelsConfig.getString(p.getName() + ".state"):"";
  556.                 } else if(msg.containsKey(p.getName())) {
  557.                         String playerstate = (String) state.get(p.getName());
  558.                         return playerstate;
  559.                 } else {
  560.                         return "";
  561.                 }
  562.         }
  563.  
  564.         @EventHandler
  565.         public void onDrop(PlayerDropItemEvent e) {
  566.                 if(e.getItemDrop().getItemStack().hasItemMeta() && e.getItemDrop().getItemStack().getItemMeta().hasLore()) {
  567.                         e.setCancelled(true);
  568.                 }
  569.  
  570.         }
  571.  
  572.         @EventHandler
  573.         public void onAttack(EntityDamageByEntityEvent e) {
  574.                 if(e.getDamager() instanceof Player) {
  575.                         Player proj = (Player)e.getDamager();
  576.                         if(Main.instance.getConfig().contains("levels." + getLevel(proj) + ".extraDMG")) {
  577.                                 double p = e.getDamage();
  578.                                 e.setDamage(p + (double)Main.instance.getConfig().getInt("levels." + getLevel(proj) + ".extraDMG"));
  579.                         }
  580.                 }
  581.  
  582.                 if(e.getDamager() instanceof Projectile && ((Projectile)e.getDamager()).getShooter() instanceof Player) {
  583.                         Projectile proj1 = (Projectile)e.getDamager();
  584.                         Player p1 = (Player)proj1.getShooter();
  585.                         if(Main.instance.getConfig().contains("levels." + getLevel(p1) + ".extraDMG")) {
  586.                                 double damage = e.getDamage();
  587.                                 e.setDamage(damage + (double)Main.instance.getConfig().getInt("levels." + getLevel(p1) + ".extraDMG"));
  588.                         }
  589.                 }
  590.  
  591.         }
  592.  
  593.         @EventHandler
  594.         public void onPlayerFish(PlayerFishEvent event) {
  595.                 if(event.getState() == State.CAUGHT_FISH && event.getCaught().getType() == EntityType.DROPPED_ITEM) {
  596.                         Item item = (Item)event.getCaught();
  597.                         ItemStack is = item.getItemStack();
  598.                         if(is.getType() == Material.ENCHANTED_BOOK || is.getType() == Material.LEATHER_BOOTS || is.getType() == Material.FISHING_ROD || is.getType() == Material.BOW) {
  599.                                 item.setItemStack(new ItemStack(Material.AIR));
  600.                                 item.remove();
  601.                                 event.getPlayer().sendMessage("§6§l| Prison | §aВы поймали деньги!");
  602.                                 Main.econ.depositPlayer(event.getPlayer(), (1.0D + (double)(new Random()).nextInt(9)) / 10.0D);
  603.                         }
  604.                 }
  605.  
  606.         }
  607.  
  608.         @EventHandler
  609.         public void onDeath(PlayerDeathEvent e) {
  610.                 final Player killed = e.getEntity();
  611.                 deaths.put(killed.getName(), Integer.valueOf(((Integer)deaths.get(killed.getName())).intValue() + 1));
  612.                 if(killed.getKiller() instanceof Player) {
  613.                         Player item = killed.getKiller();
  614.                         int money = getLevel(killed);
  615.                         if(Main.econ.getBalance(killed) >= (double)money) {
  616.                                 killed.sendMessage("§6§l| Prison | §cВас убил §9" + item.getName() + "§c и Вы потеряли " + ChatColor.DARK_GREEN + money + "$");
  617.                                 item.sendMessage("§6§l| Prison | §aВы убили §9" + killed.getName() + "§a и получили " + ChatColor.DARK_GREEN + money + "$");
  618.                                 Main.econ.withdrawPlayer(killed, (double)money);
  619.                                 Main.econ.depositPlayer(item, (double)money);
  620.                         }
  621.  
  622.                         kills.put(item.getName(), Integer.valueOf(((Integer)kills.get(item.getName())).intValue() + 1));
  623.                 }
  624.  
  625.                 ItemStack item1;
  626.                 if(killed.getInventory().getHelmet() != null) {
  627.                         item1 = killed.getInventory().getHelmet();
  628.                         if(!item1.hasItemMeta() || !item1.getItemMeta().hasLore()) {
  629.                                 e.getEntity().getInventory().setHelmet(new ItemStack(Material.AIR));
  630.                                 killed.getWorld().dropItemNaturally(killed.getLocation(), item1);
  631.                                 e.getDrops().remove(item1);
  632.                         }
  633.                 }
  634.  
  635.                 if(killed.getInventory().getChestplate() != null) {
  636.                         item1 = killed.getInventory().getChestplate();
  637.                         if(!item1.hasItemMeta() || !item1.getItemMeta().hasLore()) {
  638.                                 e.getEntity().getInventory().setChestplate(new ItemStack(Material.AIR));
  639.                                 killed.getWorld().dropItemNaturally(killed.getLocation(), item1);
  640.                                 e.getDrops().remove(item1);
  641.                         }
  642.                 }
  643.  
  644.                 if(killed.getInventory().getLeggings() != null) {
  645.                         item1 = killed.getInventory().getLeggings();
  646.                         if(!item1.hasItemMeta() || !item1.getItemMeta().hasLore()) {
  647.                                 e.getEntity().getInventory().setLeggings(new ItemStack(Material.AIR));
  648.                                 killed.getWorld().dropItemNaturally(killed.getLocation(), item1);
  649.                                 e.getDrops().remove(item1);
  650.                         }
  651.                 }
  652.  
  653.                 if(killed.getInventory().getBoots() != null) {
  654.                         item1 = killed.getInventory().getBoots();
  655.                         if(!item1.hasItemMeta() || !item1.getItemMeta().hasLore()) {
  656.                                 e.getEntity().getInventory().setBoots(new ItemStack(Material.AIR));
  657.                                 killed.getWorld().dropItemNaturally(killed.getLocation(), item1);
  658.                                 e.getDrops().remove(item1);
  659.                         }
  660.                 }
  661.  
  662.                 Iterator money1 = e.getDrops().iterator();
  663.  
  664.                 while(true) {
  665.                         do {
  666.                                 if(!money1.hasNext()) {
  667.                                         killed.spigot().respawn();
  668.                                         Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.instance, new Runnable() {
  669.                                                 public void run() {
  670.                                                         killed.addPotionEffect(new PotionEffect(PotionEffectType.WEAKNESS, 1200, 0));
  671.                                                         killed.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 600, 0));
  672.                                                         killed.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20*3, 0));
  673.                                                 }
  674.                                         }, 1L);
  675.                                         return;
  676.                                 }
  677.  
  678.                                 item1 = (ItemStack)money1.next();
  679.                         } while(item1.hasItemMeta() && item1.getItemMeta().hasLore());
  680.  
  681.                         e.getEntity().getInventory().remove(item1);
  682.                         killed.getWorld().dropItemNaturally(killed.getLocation(), item1);
  683.                 }
  684.         }
  685.  
  686.         @EventHandler
  687.         public void onQuit(PlayerQuitEvent e) {
  688.                 Player p = e.getPlayer();
  689.                 Main.instance.levelsConfig.set(p.getName() + ".level", levels.get(p.getName()));
  690.                 Main.instance.levelsConfig.set(p.getName() + ".scoreboard", scoreboard.get(p.getName()));
  691.                 Main.instance.levelsConfig.set(p.getName() + ".blocks", blocks.get(p.getName()));
  692.                 Main.instance.levelsConfig.set(p.getName() + ".kills", kills.get(p.getName()));
  693.                 Main.instance.levelsConfig.set(p.getName() + ".deaths", deaths.get(p.getName()));
  694.                 Main.instance.levelsConfig.set(p.getName() + ".drugs", drugs.get(p.getName()));
  695.                 Main.instance.levelsConfig.set(p.getName() + ".donatemoney", donatemoney.get(p.getName()));
  696.                 Main.instance.levelsConfig.set(p.getName() + ".passport", passport.get(p.getName()));
  697.                 Main.instance.levelsConfig.set(p.getName() + ".sex", sex.get(p.getName()));
  698.                 Main.instance.levelsConfig.set(p.getName() + ".age", age.get(p.getName()));
  699.                 if(faction.containsKey(p.getName())) {
  700.                         Main.instance.levelsConfig.set(p.getName() + ".faction", faction.get(p.getName()));
  701.                 }
  702.                 if(jobs.containsKey(p.getName())) {
  703.                         Main.instance.levelsConfig.set(p.getName() + ".jobs", jobs.get(p.getName()));
  704.                 }
  705.                 if(city.containsKey(p.getName())) {
  706.                         Main.instance.levelsConfig.set(p.getName() + ".city", city.get(p.getName()));
  707.                 }
  708.                 if(country.containsKey(p.getName())) {
  709.                         Main.instance.levelsConfig.set(p.getName() + ".country", country.get(p.getName()));
  710.                 }
  711.                 if(msg.containsKey(p.getName())) {
  712.                         Main.instance.levelsConfig.set(p.getName() + ".msg", msg.get(p.getName()));
  713.                 }
  714.                 if(state.containsKey(p.getName())) {
  715.                         Main.instance.levelsConfig.set(p.getName() + ".state", state.get(p.getName()));
  716.                 }
  717.                 levels.remove(p.getName());
  718.                 blocks.remove(p.getName());
  719.                 kills.remove(p.getName());
  720.                 deaths.remove(p.getName());
  721.                 faction.remove(p.getName());
  722.                 jobs.remove(p.getName());
  723.                 city.remove(p.getName());
  724.                 scoreboard.remove(p.getName());
  725.                 drugs.remove(p.getName());
  726.                 donatemoney.remove(p.getName());
  727.                 passport.remove(p.getName());
  728.                 sex.remove(p.getName());
  729.                 age.remove(p.getName());
  730.                 country.remove(p.getName());
  731.                 msg.remove(p.getName());
  732.                 state.remove(p.getName());
  733.         }
  734.  
  735.         @EventHandler
  736.         public void onChat(AsyncPlayerChatEvent e) {
  737.                 Player p = e.getPlayer();
  738.                 if (p.hasPermission("staff.chat")) {
  739.                         if (e.getMessage().startsWith("#")) {
  740.                                 e.setMessage(ChatColor.LIGHT_PURPLE + e.getMessage().replaceFirst("#", ""));
  741.                         }
  742.                         return;
  743.                 }
  744.         }
  745.  
  746.  
  747.         @EventHandler
  748.         public void onChat2(AsyncPlayerChatEvent e) {
  749.                 Player p = e.getPlayer();
  750.                 e.setFormat(e.getFormat().replace("[level]", String.valueOf(Levels.levels.get(p.getName()))));
  751.                 String playerFaction = getFaction(p);
  752.                         if(playerFaction.equalsIgnoreCase("White")) {
  753.                                 e.setFormat(e.getFormat().replace("[faction]", ChatColor.GRAY + "Белый "));
  754.                         } else if(playerFaction.equalsIgnoreCase("Black")) {
  755.                                 e.setFormat(e.getFormat().replace("[faction]", ChatColor.DARK_GRAY + "Ниггер "));
  756.                         } else if(playerFaction.equalsIgnoreCase("Yellow")) {
  757.                                 e.setFormat(e.getFormat().replace("[faction]", ChatColor.YELLOW + "Азиат "));
  758.                         } else if(playerFaction.equalsIgnoreCase("Gray")) {
  759.                                 e.setFormat(e.getFormat().replace("[faction]", ChatColor.GOLD + "Грек "));
  760.                         } else if(playerFaction.equalsIgnoreCase("Blue")) {
  761.                                 e.setFormat(e.getFormat().replace("[faction]", ChatColor.BLUE + "Полицейский "));
  762.                         } else {
  763.                                 e.setFormat(e.getFormat().replace("[faction]", ""));
  764.                 }
  765.  
  766.                 if(e.getMessage().startsWith("@") && !getFaction(p).equals("")) {
  767.                         Iterator var5 = Bukkit.getOnlinePlayers().iterator();
  768.  
  769.                         while(true) {
  770.                                 while(var5.hasNext()) {
  771.                                         Player player = (Player)var5.next();
  772.                                         if(!getFaction(player).equals(getFaction(p)) && !player.hasPermission("prison.admin")) {
  773.                                                 e.getRecipients().remove(player);
  774.                                         } else {
  775.                                                 e.setMessage(ChatColor.BLUE + e.getMessage().replaceFirst("@", ""));
  776.                                         }
  777.                                 }
  778.                                 return;
  779.                         }
  780.                 }
  781.         }
  782.  
  783.         @EventHandler
  784.         public void onJoinKniga(PlayerJoinEvent e){
  785.                 Player p = e.getPlayer();
  786.  
  787.                 if(!p.getInventory().contains(Items.menu)){
  788.                         p.getInventory().addItem(Items.menu);
  789.                 } else {
  790.                         return;
  791.                 }
  792.         }
  793.  
  794.         @EventHandler
  795.         public void onClickKniga(PlayerInteractEvent e){
  796.                 Player p = e.getPlayer();
  797.                 if(p.getItemInHand() != null && p.getItemInHand().hasItemMeta() && p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(Items.menumeta.getDisplayName())){
  798.                         if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
  799.                                 p.sendMessage("§a[§cPrisonMenu§a] §aМеню успешно открыто!");
  800.                                 GUIprofile.OpenGUI(p);
  801.                         }
  802.                 }
  803.         }
  804. }
  805.  

Share with your friends:

Распечатать