Advertisement
Guest User

warlistener.java

a guest
Dec 22nd, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 50.36 KB | None | 0 0
  1. package me.moo3oo3oo3;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Properties;
  12. import java.util.Random;
  13. import java.util.TreeMap;
  14. import java.util.UUID;
  15.  
  16. import net.minecraft.server.v1_8_R1.PacketPlayOutEntityStatus;
  17.  
  18. import org.bukkit.Bukkit;
  19. import org.bukkit.Color;
  20. import org.bukkit.Effect;
  21. import org.bukkit.GameMode;
  22. import org.bukkit.Material;
  23. import org.bukkit.Sound;
  24. import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
  25. import org.bukkit.enchantments.Enchantment;
  26. import org.bukkit.entity.Cow;
  27. import org.bukkit.entity.Entity;
  28. import org.bukkit.entity.FallingBlock;
  29. import org.bukkit.entity.LivingEntity;
  30. import org.bukkit.entity.Player;
  31. import org.bukkit.entity.Villager;
  32. import org.bukkit.event.EventHandler;
  33. import org.bukkit.event.Listener;
  34. import org.bukkit.event.block.BlockBreakEvent;
  35. import org.bukkit.event.block.BlockPlaceEvent;
  36. import org.bukkit.event.entity.EntityDamageEvent;
  37. import org.bukkit.event.entity.EntityDeathEvent;
  38. import org.bukkit.event.entity.FoodLevelChangeEvent;
  39. import org.bukkit.event.entity.PlayerDeathEvent;
  40. import org.bukkit.event.inventory.InventoryClickEvent;
  41. import org.bukkit.event.inventory.InventoryType;
  42. import org.bukkit.event.player.AsyncPlayerChatEvent;
  43. import org.bukkit.event.player.PlayerDropItemEvent;
  44. import org.bukkit.event.player.PlayerInteractEntityEvent;
  45. import org.bukkit.event.player.PlayerInteractEvent;
  46. import org.bukkit.event.player.PlayerLoginEvent;
  47. import org.bukkit.event.player.PlayerRespawnEvent;
  48. import org.bukkit.inventory.Inventory;
  49. import org.bukkit.inventory.ItemStack;
  50. import org.bukkit.inventory.meta.ItemMeta;
  51. import org.bukkit.inventory.meta.LeatherArmorMeta;
  52. import org.bukkit.potion.PotionEffect;
  53. import org.bukkit.potion.PotionEffectType;
  54. import org.bukkit.scheduler.BukkitRunnable;
  55. import org.bukkit.scheduler.BukkitTask;
  56. import org.bukkit.scoreboard.DisplaySlot;
  57. import org.bukkit.scoreboard.Objective;
  58. import org.bukkit.scoreboard.Score;
  59. import org.bukkit.scoreboard.Scoreboard;
  60. import org.bukkit.scoreboard.ScoreboardManager;
  61. import org.bukkit.util.Vector;
  62.  
  63. public class warlistener implements Listener {
  64.    
  65.     dimension configGetter;
  66.    
  67.     private static dimension plugin;
  68.  
  69.     public warlistener(dimension plugin) {
  70.         this.plugin = plugin;
  71.         plugin.getServer().getPluginManager().registerEvents(this, plugin);
  72.     }
  73.    
  74.     //Stores player coins from killing 
  75.     public void storePlayercoins(Player player, int coins) {
  76.         File file = new File("plugins/dimension/playerCoins.props");
  77.         try {
  78.          
  79.             if (!file.exists()) {
  80.                 file.createNewFile();
  81.             }
  82.          
  83.             Properties props = new Properties();
  84.             FileOutputStream out = new FileOutputStream(file);
  85.             props.setProperty(player.getUniqueId().toString(), String.valueOf(coins));
  86.             props.store(out, "Player Coins");
  87.             out.close();
  88.          
  89.         } catch (IOException e) {
  90.             e.printStackTrace();
  91.         }
  92.     }
  93.    
  94.     //Get number of coins
  95.     public String getDataCoins(Player player) {
  96.         File file = new File("plugins/dimension/playerCoins.props");
  97.         try {
  98.          
  99.             if (!file.exists()) {
  100.                 file.createNewFile();
  101.             }
  102.          
  103.             Properties props = new Properties();
  104.             FileInputStream in = new FileInputStream(file);
  105.             props.load(in);
  106.             String data = props.getProperty(player.getUniqueId().toString());
  107.             if (data == null) {
  108.                 data = "0";
  109.             }
  110.             in.close();
  111.             return data;
  112.          
  113.         } catch (IOException e) {
  114.             e.printStackTrace();
  115.         }
  116.         return null;
  117.     }
  118.    
  119.     //Store kills
  120.         public void storePlayerKills(Player player, int score) {
  121.             File file = new File("plugins/dimension/Kills.props");
  122.             try {
  123.              
  124.                 if (!file.exists()) {
  125.                     file.createNewFile();
  126.                 }
  127.              
  128.                 Properties props = new Properties();
  129.                 FileOutputStream out = new FileOutputStream(file);
  130.                 props.setProperty(player.getUniqueId().toString(), String.valueOf(score));
  131.                 props.store(out, "Player Kills");
  132.                 out.close();
  133.              
  134.             } catch (IOException e) {
  135.                 e.printStackTrace();
  136.             }
  137.         }
  138.        
  139.         //Get kills
  140.         public String getDataKills(Player player) {
  141.             File file = new File("plugins/dimension/Kills.props");
  142.             try {
  143.              
  144.                 if (!file.exists()) {
  145.                     file.createNewFile();
  146.                 }
  147.              
  148.                 Properties props = new Properties();
  149.                 FileInputStream in = new FileInputStream(file);
  150.                 props.load(in);
  151.                 String data = props.getProperty(player.getUniqueId().toString());
  152.                 if (data == null) {
  153.                     data = "0";
  154.                 }
  155.                 in.close();
  156.                 return data;
  157.              
  158.             } catch (IOException e) {
  159.                 e.printStackTrace();
  160.             }
  161.             return null;
  162.         }
  163.        
  164.         //Store deaths
  165.         public void storePlayerDeaths(Player player, int score) {
  166.             File file = new File("plugins/dimension/Deaths.props");
  167.             try {
  168.              
  169.                 if (!file.exists()) {
  170.                     file.createNewFile();
  171.                 }
  172.              
  173.                 Properties props = new Properties();
  174.                 FileOutputStream out = new FileOutputStream(file);
  175.                 props.setProperty(player.getUniqueId().toString(), String.valueOf(score));
  176.                 props.store(out, "Player Deaths");
  177.                 out.close();
  178.              
  179.             } catch (IOException e) {
  180.                 e.printStackTrace();
  181.             }
  182.         }
  183.        
  184.         //Get deaths
  185.             public String getDataDeaths(Player player) {
  186.                 File file = new File("plugins/dimension/Deaths.props");
  187.                 try {
  188.                  
  189.                     if (!file.exists()) {
  190.                         file.createNewFile();
  191.                     }
  192.                  
  193.                     Properties props = new Properties();
  194.                     FileInputStream in = new FileInputStream(file);
  195.                     props.load(in);
  196.                     String data = props.getProperty(player.getUniqueId().toString());
  197.                     if (data == null) {
  198.                         data = "0";
  199.                     }
  200.                     in.close();
  201.                     return data;
  202.                  
  203.                 } catch (IOException e) {
  204.                     e.printStackTrace();
  205.                 }
  206.                 return null;
  207.                 }
  208.    
  209.     //Store Scores
  210.     public void storePlayerScore(Player player) {
  211.         File file = new File("plugins/dimension/Scores.props");
  212.         try {
  213.          
  214.             if (!file.exists()) {
  215.                 file.createNewFile();
  216.             }
  217.            
  218.             Integer deaths = Integer.valueOf(getDataDeaths(player));
  219.             Integer kills = Integer.valueOf(getDataKills(player));
  220.             int score = (int) Math.round((kills/(deaths + kills*1.0))*100);
  221.             Properties props = new Properties();
  222.             FileOutputStream out = new FileOutputStream(file);
  223.             props.setProperty(player.getUniqueId().toString(), String.valueOf(score));
  224.             props.store(out, "Player Scores");
  225.             out.close();
  226.          
  227.         } catch (IOException e) {
  228.             e.printStackTrace();
  229.         }
  230.     }
  231.    
  232.     //Get score
  233.     public String getDataScore(Player player) {
  234.         File file = new File("plugins/dimension/Scores.props");
  235.         try {
  236.            
  237.             if (!file.exists()) {
  238.                 file.createNewFile();
  239.             }
  240.              
  241.             Properties props = new Properties();
  242.             FileInputStream in = new FileInputStream(file);
  243.             props.load(in);
  244.             String data = props.getProperty(player.getUniqueId().toString());
  245.             if (data == null) {
  246.                 data = "0";
  247.             }
  248.             in.close();
  249.             return data;
  250.            
  251.         } catch (IOException e) {
  252.             e.printStackTrace();
  253.         }
  254.         return null;
  255.     }
  256.        
  257.     //Ranks the player
  258.     public int ranking(Player player) {
  259.         File file = new File("plugins/dimension/Scores.props");
  260.         try {
  261.              
  262.             if (!file.exists()) {
  263.                 file.createNewFile();
  264.             }
  265.              
  266.             Properties props = new Properties();
  267.             FileInputStream in = new FileInputStream(file);
  268.             props.load(in);
  269.                
  270.             if (props.isEmpty()) {
  271.                    
  272.             } else {
  273.                 TreeMap<Integer, String> tm = new TreeMap<Integer, String>(Collections.reverseOrder());
  274.                 String listProps = props.toString().replace("{", "");
  275.                 listProps = listProps.toString().replace("}", "");
  276.                 listProps = listProps.toString().replace(" ", "");
  277.                 String[] value = listProps.toString().split(",");
  278.                 for (String part: value) {
  279.                     String number = part.substring(37);
  280.                     tm.put(new Integer(number), part);
  281.                 }
  282.                 int times = 0;
  283.                 for (Object key: tm.keySet()) {
  284.                     if (UUID.fromString(tm.get(key).toString().subSequence(0, 36).toString()).equals(player.getUniqueId())) {
  285.                         return times + 1;
  286.                     }
  287.                     times++;
  288.                 }
  289.                
  290.                 in.close();
  291.             }
  292.              
  293.         } catch (IOException e) {
  294.             e.printStackTrace();
  295.         }
  296.         return 0;
  297.     }
  298.        
  299.     //Creates scoreboard
  300.     public void stats(final Player player) {
  301.         ScoreboardManager manager = Bukkit.getScoreboardManager();
  302.         Scoreboard board = manager.getNewScoreboard();
  303.        
  304.         Objective objective = board.registerNewObjective("§aStats", "dummy");
  305.         objective.setDisplaySlot(DisplaySlot.SIDEBAR);
  306.         objective.setDisplayName("§a§lStats");
  307.         player.setScoreboard(board);
  308.         final Score coins = objective.getScore("§6Coins");
  309.         coins.setScore(1);
  310.         coins.setScore(Integer.valueOf(getDataCoins(player)));
  311.            
  312.         final Score score = objective.getScore("§7Kill Rate in %");
  313.         score.setScore(1);
  314.         score.setScore(Integer.valueOf(getDataScore(player)));
  315.            
  316.         final Score rank = objective.getScore("§5Ranking");
  317.         rank.setScore(1);
  318.         rank.setScore(ranking(player));
  319.            
  320.         final Score death = objective.getScore("§4Deaths");
  321.         death.setScore(1);
  322.         death.setScore(Integer.valueOf(getDataDeaths(player)));
  323.            
  324.         final Score kills = objective.getScore("§bKills");
  325.         kills.setScore(1);
  326.         kills.setScore(Integer.valueOf(getDataKills(player)));
  327.     }
  328.        
  329.     //kit selector inventory
  330.     Inventory kits(Player player) {
  331.         Inventory inv = Bukkit.getServer().createInventory(player, 9, "§5Kit Selector");
  332.        
  333.         //milk man icon
  334.         ItemStack milk = new ItemStack(Material.MILK_BUCKET);
  335.         ItemMeta Milkmeta = milk.getItemMeta();
  336.         Milkmeta.setDisplayName("§fMilk Man");
  337.         milk.setItemMeta(Milkmeta);
  338.        
  339.         //terrorist icon
  340.         ItemStack tnt = new ItemStack(Material.TNT);
  341.         ItemMeta Tntmeta = tnt.getItemMeta();;
  342.         Tntmeta.setDisplayName("§4Terrorist");
  343.         tnt.setItemMeta(Tntmeta);
  344.        
  345.         //dash icon
  346.         ItemStack speed = new ItemStack(Material.SUGAR);
  347.         ItemMeta Speedmeta = speed.getItemMeta();
  348.         Speedmeta.setDisplayName("§cDash");
  349.         speed.setItemMeta(Speedmeta);
  350.        
  351.         //soldier icon
  352.         ItemStack soldier = new ItemStack(Material.INK_SACK);
  353.         ItemMeta Soldiermeta = soldier.getItemMeta();
  354.         Soldiermeta.setDisplayName("§8Soldier");
  355.         soldier.setItemMeta(Soldiermeta);
  356.        
  357.         //soldier icon
  358.         ItemStack engineer = new ItemStack(Material.IRON_BARDING);
  359.         ItemMeta Engineermeta = engineer.getItemMeta();
  360.         Engineermeta.setDisplayName("§7Engineer");
  361.         engineer.setItemMeta(Engineermeta);
  362.            
  363.         inv.setItem(0, tnt);
  364.         inv.setItem(2, milk);
  365.         inv.setItem(4, speed);
  366.         inv.setItem(6, soldier);
  367.         inv.setItem(8, engineer);
  368.         return inv;
  369.     }
  370.        
  371.     //Gives rabbit stew
  372.     void stew(Player player) {
  373.         org.bukkit.inventory.ItemStack stew = new ItemStack(Material.RABBIT_STEW, 1);
  374.         ItemMeta meta1 = stew.getItemMeta();
  375.         List<String> lores1 = new ArrayList<String>();
  376.         lores1.add("§7§oInsta Drink");
  377.         meta1.setLore(lores1);
  378.         stew.setItemMeta(meta1);
  379.         for(int i=0; i<player.getInventory().getSize(); i++){
  380.             if(player.getInventory().getItem(i) == null){
  381.                 player.getInventory().setItem(i, stew);
  382.             }
  383.         }
  384.     }
  385.    
  386.     //Unbreakable
  387.     void unbreak(Player player) {
  388.         for (ItemStack item : player.getInventory().getContents()) {
  389.             boolean test = true;
  390.             try {
  391.                 item.getDurability();
  392.                 Enchantment.DURABILITY.canEnchantItem(item);
  393.             } catch (Exception ex) {
  394.                 test = false;
  395.             }
  396.             if (test) {
  397.                 ItemMeta meta = item.getItemMeta();
  398.                 meta.spigot().setUnbreakable(true);
  399.                 item.setItemMeta(meta);
  400.             }
  401.         }
  402.        
  403.         for (ItemStack item1 : player.getInventory().getArmorContents()) {
  404.             boolean test1 = true;
  405.             try {
  406.                 item1.getDurability();
  407.                 Enchantment.DURABILITY.canEnchantItem(item1);
  408.             } catch (Exception ex) {
  409.                 test1 = false;
  410.             }
  411.             if (test1) {
  412.                 ItemMeta meta1 = item1.getItemMeta();
  413.                 meta1.spigot().setUnbreakable(true);
  414.                 item1.setItemMeta(meta1);
  415.             }
  416.         }
  417.     }
  418.    
  419.     //Kit Selector Netherstar
  420.     ItemStack kitselector() {
  421.         ItemStack kitselector = new ItemStack(Material.NETHER_STAR);
  422.         ItemMeta starmeta = kitselector.getItemMeta();
  423.         List<String> starlores = new ArrayList<String>();
  424.         starlores.add("§7§oRight click to select kits");
  425.         starmeta.setDisplayName("§7Kit Selector");
  426.         starmeta.setLore(starlores);
  427.         kitselector.setItemMeta(starmeta);
  428.         return kitselector;
  429.     }
  430.  
  431.     //Terrorist Class
  432.     void Terrorist(Player player) {
  433.         player.teleport(player.getWorld().getSpawnLocation());
  434.         player.getInventory().clear();
  435.         player.setExp(0);
  436.         player.getInventory().setChestplate(new ItemStack(Material.AIR));
  437.         player.getInventory().setLeggings(new ItemStack(Material.AIR));
  438.         player.getInventory().setBoots(new ItemStack(Material.AIR));
  439.         plugin.kit.remove(player);
  440.         plugin.kit.put(player, "terrorist");
  441.         org.bukkit.inventory.ItemStack tnt = new ItemStack(Material.TNT);
  442.         ItemMeta meta = tnt.getItemMeta();
  443.         List<String> lores = new ArrayList<String>();
  444.         lores.add("§7§oExplosive head");
  445.        
  446.         meta.setDisplayName("§4Suicidal Bomb");
  447.         meta.setLore(lores);
  448.         tnt.setItemMeta(meta);
  449.         player.getInventory().setHelmet(tnt);
  450.        
  451.         player.getInventory().addItem(new ItemStack(Material.GOLD_SWORD));
  452.         org.bukkit.inventory.ItemStack fuse = new ItemStack(Material.SULPHUR);
  453.         ItemMeta meta1 = fuse.getItemMeta();
  454.         List<String> lores1 = new ArrayList<String>();
  455.         lores1.add("§7§oRight click to suicide");
  456.         meta1.setDisplayName("§rFuse");
  457.         meta1.setLore(lores1);
  458.         fuse.setItemMeta(meta1);
  459.         player.getInventory().addItem(fuse);
  460.         stew(player);
  461.         unbreak(player);
  462.     }
  463.    
  464.     //Milkman
  465.     void Milkman(Player player) {
  466.         player.teleport(player.getWorld().getSpawnLocation());
  467.         player.getInventory().clear();
  468.         player.setExp(0);
  469.         plugin.kit.remove(player);
  470.         plugin.kit.put(player, "milkman");
  471.         player.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET));
  472.         player.getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
  473.         player.getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
  474.         player.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
  475.        
  476.         for (ItemStack item: player.getInventory().getArmorContents()) {
  477.         LeatherArmorMeta meta = (LeatherArmorMeta) item.getItemMeta();
  478.             meta.setColor(Color.fromRGB(255, 255, 255));
  479.             item.setItemMeta(meta);
  480.             item.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
  481.         }
  482.        
  483.         ItemStack Bessie = new ItemStack(Material.MONSTER_EGG, 1, (short) 92);
  484.         ItemMeta Bessiemeta = Bessie.getItemMeta();
  485.         List<String> Bessielores = new ArrayList<String>();
  486.         Bessielores.add("§7§oSpawn her in to slowy refill milk bucket");
  487.         Bessiemeta.setDisplayName("§rOl' Bessie");
  488.         Bessiemeta.setLore(Bessielores);
  489.         Bessie.setItemMeta(Bessiemeta);
  490.         player.getInventory().setItem(17, Bessie);
  491.        
  492.         ItemStack milk = new ItemStack(Material.MILK_BUCKET);
  493.         ItemMeta Milkmeta = milk.getItemMeta();
  494.         List<String> Milklores = new ArrayList<String>();
  495.         Milklores.add("§7§oDrink for strong bones and rejuvenate effect");
  496.         Milkmeta.setLore(Milklores);
  497.         milk.setItemMeta(Milkmeta);
  498.        
  499.         player.getInventory().setItem(16, milk);
  500.         player.getInventory().setItem(15, milk);
  501.         player.getInventory().setItem(14, milk);
  502.         player.getInventory().setItem(13, milk);
  503.        
  504.         player.getInventory().addItem(new ItemStack(Material.IRON_SWORD));
  505.         stew(player);
  506.         unbreak(player);
  507.     }
  508.    
  509.     //Dash Class
  510.     void Dash(Player player) {
  511.         player.teleport(player.getWorld().getSpawnLocation());
  512.         player.getInventory().clear();
  513.         player.setExp(0);
  514.         player.getInventory().setHelmet(null);
  515.         player.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
  516.         player.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
  517.         player.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
  518.         plugin.kit.remove(player);
  519.         plugin.kit.put(player, "dash");
  520.         player.getInventory().addItem(new ItemStack(Material.IRON_SWORD));
  521.        
  522.         org.bukkit.inventory.ItemStack speed = new ItemStack(Material.SUGAR);
  523.         ItemMeta Speedmeta = speed.getItemMeta();
  524.         List<String> Speedlores = new ArrayList<String>();
  525.         Speedlores.add("§7§oRight click for a speed boost");
  526.         Speedmeta.setLore(Speedlores);
  527.         Speedmeta.setDisplayName("§cSugar §fRush");
  528.         speed.setItemMeta(Speedmeta);
  529.         player.getInventory().addItem(speed);
  530.        
  531.         stew(player);
  532.         unbreak(player);
  533.     }
  534.    
  535.     //soldier Class
  536.     void Soldier(Player player) {
  537.         player.teleport(player.getWorld().getSpawnLocation());
  538.         player.getInventory().clear();
  539.         player.setExp(0);
  540.         player.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
  541.         player.getInventory().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
  542.         player.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
  543.         player.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
  544.         plugin.kit.remove(player);
  545.         plugin.kit.put(player, "soldier");
  546.         player.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
  547.        
  548.         org.bukkit.inventory.ItemStack smoke = new ItemStack(Material.INK_SACK, 5);
  549.         ItemMeta Smokemeta = smoke.getItemMeta();
  550.         Smokemeta.setDisplayName("§0Smoke Bomb");
  551.         smoke.setItemMeta(Smokemeta);
  552.         player.getInventory().addItem(smoke);
  553.        
  554.         stew(player);
  555.         unbreak(player);
  556.     }
  557.    
  558.     //engineer Class
  559.     void Engineer(Player player) {
  560.         player.teleport(player.getWorld().getSpawnLocation());
  561.         player.getInventory().clear();
  562.         player.setExp(0);
  563.         player.getInventory().setHelmet(new ItemStack(Material.GOLD_HELMET));
  564.         player.getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
  565.         player.getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
  566.         player.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
  567.        
  568.             for (ItemStack item: player.getInventory().getArmorContents()) {
  569.             if (item.getType() != Material.GOLD_HELMET) {
  570.                 LeatherArmorMeta meta = (LeatherArmorMeta) item.getItemMeta();
  571.                 meta.setColor(Color.fromRGB(0, 0, 153));
  572.                 item.setItemMeta(meta);
  573.             } else {
  574.                 item.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);  
  575.             }
  576.         }
  577.            
  578.         plugin.kit.remove(player);
  579.         plugin.kit.put(player, "engineer");
  580.         org.bukkit.inventory.ItemStack spade = new ItemStack(Material.IRON_SPADE);
  581.         spade.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 3);
  582.         player.getInventory().addItem(spade);
  583.        
  584.         org.bukkit.inventory.ItemStack wrench = new ItemStack(Material.IRON_BARDING);
  585.         ItemMeta Wrenchmeta = wrench.getItemMeta();
  586.         List<String> Wrenchlores = new ArrayList<String>();
  587.         Wrenchlores.add("§7§oRight click players");
  588.         Wrenchmeta.setLore(Wrenchlores);
  589.         Wrenchmeta.setDisplayName("§7Monkey Wrench");
  590.         wrench.setItemMeta(Wrenchmeta);
  591.         player.getInventory().addItem(wrench);
  592.        
  593.         stew(player);
  594.         unbreak(player);
  595.     }
  596.  
  597.     HashMap<UUID, Boolean> isSwitch = new HashMap<UUID, Boolean>();
  598.    
  599.     @EventHandler
  600.     public void onPlayerClick(InventoryClickEvent e) {
  601.        
  602.         if (e.getSlotType() == InventoryType.SlotType.ARMOR)
  603.             e.setCancelled(true);
  604.     }
  605.  
  606.  
  607.     @EventHandler
  608.     public void noBuilding(BlockPlaceEvent e) {
  609.         if (e.getPlayer().getGameMode() != GameMode.CREATIVE) {
  610.             e.setCancelled(true);  
  611.         }
  612.     }
  613.  
  614.     @EventHandler
  615.     public void noBreaking(BlockBreakEvent e) {
  616.         if (e.getPlayer().getGameMode() != GameMode.CREATIVE) {
  617.             e.setCancelled(true);
  618.             }
  619.     }
  620.  
  621.     @EventHandler
  622.     public void playerdrop(PlayerDropItemEvent e) {
  623.        
  624.         if (e.getItemDrop().getItemStack().getType() == Material.RABBIT_STEW || e.getItemDrop().getItemStack().getType() == Material.BOWL) {
  625.             e.getItemDrop().remove();
  626.         } else {
  627.             e.setCancelled(true);
  628.         }
  629.     }
  630.    
  631.     //Terrorist explode
  632.     @EventHandler
  633.     public void terrorist(PlayerInteractEvent e) {
  634.    
  635.         final Player player = e.getPlayer();
  636.    
  637.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  638.             if (player.getItemInHand().hasItemMeta()) {
  639.                 if (player.getItemInHand().getType() == Material.SULPHUR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§rFuse") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK || player.getItemInHand().getType() == Material.SULPHUR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§rFuse") && e.getAction() == e.getAction().RIGHT_CLICK_AIR) {
  640.                     player.getInventory().remove(Material.SULPHUR);
  641.                     player.updateInventory();
  642.                     player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 110, 1));
  643.                     player.setHealth(2);
  644.                     player.sendMessage("§4You are now vulnerable");
  645.                
  646.                     //tnt animation
  647.                     final int tasktnt = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
  648.                         public void run() {
  649.                             final FallingBlock sand = player.getWorld().spawnFallingBlock(player.getEyeLocation().add(0, 1, 0), Material.TNT, (byte) 2);
  650.                             sand.setVelocity(new Vector(player.getLocation().getDirection().multiply(-1).getX(), 0.5, player.getLocation().getDirection().multiply(-1).getZ()));
  651.                             final FallingBlock sand2 = player.getWorld().spawnFallingBlock(player.getEyeLocation().add(0, 1, 0), Material.TNT, (byte) 2);
  652.                             sand2.setVelocity(new Vector(player.getLocation().getDirection().multiply(-1).getX(), 0.5, player.getLocation().getDirection().multiply(-1).getZ()));
  653.                             final FallingBlock sand3 = player.getWorld().spawnFallingBlock(player.getEyeLocation().add(0, 1, 0), Material.TNT, (byte) 2);
  654.                             sand3.setVelocity(new Vector(player.getLocation().getDirection().multiply(-1).getX(), 0.5, player.getLocation().getDirection().multiply(-1).getZ()));
  655.                            
  656.                             Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
  657.                                 public void run() {
  658.                                     sand.remove();
  659.                                     sand2.remove();
  660.                                     sand3.remove();
  661.                                 }
  662.                             }, 1L);
  663.                         }
  664.                     }, 0L, 1L);
  665.                
  666.                     //xp count down
  667.                     final int countDown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
  668.                         public void run() {
  669.                             player.giveExp(1);
  670.                         }
  671.                     }, 0L, 15L);
  672.                
  673.                     //Explode
  674.                     final int stopExplode = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
  675.                         public void run() {
  676.                             player.getWorld().createExplosion(player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ(), 5F, false, false);
  677.                             player.setHealth(0);
  678.                             Bukkit.getScheduler().cancelTask(countDown);
  679.                             Bukkit.getScheduler().cancelTask(tasktnt);
  680.                         }
  681.                     }, 100L);
  682.                    
  683.                     //Cancel explode and tnt
  684.                     new BukkitRunnable()
  685.                     {
  686.                         public void run()
  687.                         {
  688.                             org.bukkit.inventory.ItemStack fuse = new ItemStack(Material.SULPHUR);
  689.                             ItemMeta meta1 = fuse.getItemMeta();
  690.                             List<String> lores1 = new ArrayList<String>();
  691.                             lores1.add("§7§oRight click to suicide");
  692.                             meta1.setDisplayName("§rFuse");
  693.                             meta1.setLore(lores1);
  694.                             fuse.setItemMeta(meta1);
  695.                        
  696.                             if (plugin.kit.get(player) != "terrorist" || player.isDead() || player.getInventory().contains(fuse)) {
  697.                                 Bukkit.getScheduler().cancelTask(tasktnt);
  698.                                 Bukkit.getScheduler().cancelTask(countDown);
  699.                                 Bukkit.getScheduler().cancelTask(stopExplode);
  700.                                 cancel();
  701.                             }
  702.                         }
  703.                     }.runTaskTimer(plugin, 0L, 1L);
  704.                 }
  705.             }
  706.         }
  707.     }
  708.    
  709.     HashMap<UUID, Long> countdown1 = new HashMap<UUID, Long>();
  710.    
  711.     //Dash Speed Boost
  712.     @EventHandler
  713.     public void Dash(PlayerInteractEvent e) {
  714.         final Player player = e.getPlayer();
  715.        
  716.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  717.             if (player.getItemInHand().hasItemMeta()) {
  718.                 if (player.getItemInHand().getType() == Material.SUGAR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§cSugar §fRush") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK || player.getItemInHand().getType() == Material.SUGAR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§cSugar §fRush") && e.getAction() == e.getAction().RIGHT_CLICK_AIR) {
  719.                     if(System.currentTimeMillis() - (countdown1.containsKey(player.getUniqueId()) ? countdown1.get(player.getUniqueId()) : 0) >= 1000*60*2) {
  720.                         countdown1.put(player.getUniqueId(), System.currentTimeMillis());
  721.                         isSwitch.remove(player.getUniqueId());
  722.                         isSwitch.put(player.getUniqueId(), false);
  723.                         player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 30*20, 1));
  724.                         ItemStack sugar = player.getInventory().getItem(player.getInventory().first(Material.SUGAR));
  725.                         ItemMeta sugarMeta = sugar.getItemMeta();
  726.                         List<String> sugarLores = new ArrayList<String>();
  727.                         sugarLores.add("§4Recharging");
  728.                         sugarMeta.setLore(sugarLores);
  729.                        
  730.                         //Set fire
  731.                         final BukkitTask fire = new BukkitRunnable() {
  732.                             public void run() {
  733.                                 for (Entity entity : player.getNearbyEntities(1, .7, 1)) {
  734.                                     entity.setFireTicks(20*5);
  735.                                 }
  736.                             }
  737.                         }.runTaskTimer(plugin, 0L, 1L);
  738.                        
  739.                         //Flame particle
  740.                         final BukkitTask flame = new BukkitRunnable() {
  741.                             public void run() {
  742.                                 player.getWorld().spigot().playEffect(player.getLocation().subtract(0, .5, 0), Effect.MOBSPAWNER_FLAMES, 1, 1, 0, 0, 0, 0, 10, 50);
  743.                             }
  744.                         }.runTaskTimer(plugin, 0L, 5L);
  745.                        
  746.                         final ItemStack leather = player.getInventory().getBoots();
  747.                         final LeatherArmorMeta meta = (LeatherArmorMeta) leather.getItemMeta();
  748.                        
  749.                         //Color change
  750.                         final BukkitTask firefeet = new BukkitRunnable() {
  751.                             public void run() {
  752.                                
  753.                                 new BukkitRunnable() {
  754.                                     public void run() {
  755.                                     meta.setColor(Color.fromRGB(213, 137, 11));
  756.                                     leather.setItemMeta(meta);
  757.                                     }
  758.                                 }.runTaskLater(plugin, 0);
  759.                                 new BukkitRunnable() {
  760.                                     public void run() {
  761.                                         meta.setColor(Color.fromRGB(230, 181, 46));
  762.                                         leather.setItemMeta(meta);
  763.                                     }
  764.                                 }.runTaskLater(plugin, 5);
  765.                                 new BukkitRunnable() {
  766.                                     public void run() {
  767.                                         meta.setColor(Color.fromRGB(255, 255, 255));
  768.                                         leather.setItemMeta(meta);
  769.                                     }
  770.                                 }.runTaskLater(plugin, 10);
  771.                                 new BukkitRunnable() {
  772.                                     public void run() {
  773.                                         meta.setColor(Color.fromRGB(213, 137, 11));
  774.                                         leather.setItemMeta(meta);
  775.                                     }
  776.                                 }.runTaskLater(plugin, 15);
  777.                                 new BukkitRunnable() {
  778.                                     public void run() {
  779.                                         meta.setColor(Color.fromRGB(179, 67, 0));
  780.                                         leather.setItemMeta(meta);
  781.                                     }
  782.                                 }.runTaskLater(plugin, 20);
  783.                                 new BukkitRunnable() {
  784.                                     public void run() {
  785.                                         meta.setColor(Color.fromRGB(210, 129, 8));
  786.                                         leather.setItemMeta(meta);
  787.                                     }
  788.                                 }.runTaskLater(plugin, 25);
  789.                                 new BukkitRunnable() {
  790.                                     public void run() {
  791.                                         meta.setColor(Color.fromRGB(213, 137, 11));
  792.                                         leather.setItemMeta(meta);
  793.                                     }
  794.                                 }.runTaskLater(plugin, 30);
  795.                                 new BukkitRunnable() {
  796.                                     public void run() {
  797.                                         meta.setColor(Color.fromRGB(195, 97, 2));
  798.                                         leather.setItemMeta(meta);
  799.                                     }
  800.                                 }.runTaskLater(plugin, 35);
  801.                             }
  802.                         }.runTaskTimer(plugin, 0L, 5L);
  803.                        
  804.                         //Cancel stuff
  805.                         final BukkitTask canceler = new BukkitRunnable() {
  806.                             public void run()  {
  807.                                    
  808.                                 if (plugin.kit.get(player) != "dash" || player.isDead() || isSwitch.get(player.getUniqueId()) != false) {
  809.                                     firefeet.cancel();
  810.                                     flame.cancel();
  811.                                     fire.cancel();
  812.                                     new BukkitRunnable() {
  813.                                         public void run()  {
  814.                                             meta.setColor(Bukkit.getItemFactory().getDefaultLeatherColor());
  815.                                             leather.setItemMeta(meta);
  816.                                            
  817.                                         }
  818.                                     }.runTaskLater(plugin, 60L);
  819.                                     cancel();
  820.                                 }
  821.                             }  
  822.                         }.runTaskTimer(plugin, 0L, 1L);
  823.                        
  824.                         //Times up
  825.                         new BukkitRunnable() {
  826.                             public void run()  {
  827.                                 canceler.cancel();
  828.                                 fire.cancel();
  829.                                 firefeet.cancel();
  830.                                 flame.cancel();
  831.                                 new BukkitRunnable() {
  832.                                     public void run()  {
  833.                                         meta.setColor(Bukkit.getItemFactory().getDefaultLeatherColor());
  834.                                         leather.setItemMeta(meta);
  835.                                     }
  836.                                 }.runTaskLater(plugin, 60L);
  837.                             }
  838.                         }.runTaskLater(plugin, 30*20L);
  839.                        
  840.                     } else {
  841.                         player.sendMessage("§4" +  String.valueOf((int)(120 - Math.floor((System.currentTimeMillis()  - countdown1.get(player.getUniqueId()))/1000))) + " seconds remaining");
  842.                     }
  843.                 }
  844.             }
  845.         }
  846.     }
  847.    
  848.     //soldier smoke bomb
  849.     @EventHandler
  850.     public void soldier(PlayerInteractEvent e) {
  851.    
  852.         final Player player = e.getPlayer();
  853.    
  854.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  855.             if (player.getItemInHand().hasItemMeta()) {
  856.                 if (player.getItemInHand().getType() == Material.INK_SACK && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§0Smoke Bomb") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK || player.getItemInHand().getType() == Material.INK_SACK && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§0Smoke Bomb") && e.getAction() == e.getAction().RIGHT_CLICK_AIR) {
  857.                    
  858.                     org.bukkit.inventory.ItemStack smoke = new ItemStack(Material.INK_SACK, 1);
  859.                     ItemMeta Smokemeta = smoke.getItemMeta();
  860.                     Smokemeta.setDisplayName("§0Smoke Bomb");
  861.                     Smokemeta.spigot().setUnbreakable(true);
  862.                     smoke.setItemMeta(Smokemeta);
  863.                    
  864.                     player.getInventory().removeItem(smoke);
  865.                     player.updateInventory();
  866.                    
  867.                     for (Entity entity: player.getNearbyEntities(4, 4, 4)) {
  868.                         if (entity instanceof LivingEntity) {
  869.                             ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20*3, 0));
  870.                             ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 20*1, 0));
  871.                         }
  872.                     }
  873.                     player.getWorld().playSound(player.getLocation(), Sound.FIZZ, (float)3, (float)20);
  874.                     player.getWorld().spigot().playEffect(player.getLocation(), Effect.LARGE_SMOKE, 0, 0, (float)0.5, (float)0.5, (float)0.5, (float)0.09, 70, 6);
  875.                     player.getWorld().spigot().playEffect(player.getLocation().add(0, 1, 0), Effect.LARGE_SMOKE, 0, 0, (float)0.5, (float)0.5, (float)0.5, (float)0.09, 70, 6);
  876.                 }
  877.             }
  878.         }
  879.     }
  880.    
  881.     HashMap<UUID, Long> countdown2 = new HashMap<UUID, Long>();
  882.    
  883.     //Engineer wrench
  884.     @EventHandler
  885.     public void engineer(PlayerInteractEntityEvent e) {
  886.         Player player = e.getPlayer();
  887.         if (e.getRightClicked() instanceof Player) {
  888.             final Player clickedPlayer = (Player) e.getRightClicked();
  889.             if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  890.                 if (player.getItemInHand().hasItemMeta()) {
  891.                     if (player.getItemInHand().getType() == Material.IRON_BARDING && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§7Monkey Wrench") || player.getItemInHand().getType() == Material.IRON_BARDING && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§7Monkey Wrench")) {
  892.                         if(System.currentTimeMillis() - (countdown2.containsKey(player.getUniqueId()) ? countdown2.get(player.getUniqueId()) : 0) >= 1000*60*2+30) {
  893.                             countdown2.put(player.getUniqueId(), System.currentTimeMillis());
  894.                            
  895.                             player.getWorld().spigot().playEffect(player.getEyeLocation(), Effect.FIREWORKS_SPARK, 0, 0, (float)0.5, (float)0.5, (float)0.5, (float)0.09, 50, 50);
  896.                             player.getWorld().spigot().playEffect(player.getLocation(), Effect.FIREWORKS_SPARK, 0, 0, (float)0.5, (float)0.5, (float)0.5, (float)0.09, 50, 50);
  897.                             player.getWorld().playSound(player.getLocation(), Sound.ANVIL_LAND, (float)0.8, (float)-3);
  898.                            
  899.                             for (ItemStack item :clickedPlayer.getInventory()) {
  900.                                 if (item != null) {
  901.                                     item.setAmount(item.getAmount()*-1);   
  902.                                 }
  903.                             }
  904.                             for (ItemStack item1 :clickedPlayer.getInventory().getArmorContents()) {
  905.                                 item1.setAmount(item1.getAmount()*-1);
  906.                             }
  907.                            
  908.                             ItemStack[] items = clickedPlayer.getInventory().getContents();
  909.                             List<Integer> used = new ArrayList<Integer>();
  910.                             Random r = new Random();
  911.                             for(int number = 0; number < items.length; number++) {
  912.                                 ItemStack item = items[number];
  913.                                 int random = r.nextInt(clickedPlayer.getInventory().getSize());
  914.                                 while(used.contains(random)) {
  915.                                     random = r.nextInt(clickedPlayer.getInventory().getSize());
  916.                                 }
  917.                                 clickedPlayer.getInventory().setItem(random, item);
  918.                                 used.add(random);
  919.                             }
  920.                            
  921.                             new BukkitRunnable() {
  922.                                 public void run() {
  923.                                     for (ItemStack item :clickedPlayer.getInventory()) {
  924.                                         if (item != null) {
  925.                                             item.setAmount(item.getAmount()*-1);   
  926.                                         }
  927.                                     }
  928.                                     for (ItemStack item1 :clickedPlayer.getInventory().getArmorContents()) {
  929.                                         item1.setAmount(item1.getAmount()*-1);
  930.                                     }
  931.                                 }
  932.                             }.runTaskLater(plugin, 20*10);
  933.                         } else {
  934.                             player.sendMessage("§4" +  String.valueOf((int)(60*2+30 - Math.floor((System.currentTimeMillis()  - countdown2.get(player.getUniqueId()))/1000))) + " seconds remaining");
  935.                         }
  936.                     }
  937.                    
  938.                 }
  939.             }
  940.         }
  941.     }
  942.    
  943.     @EventHandler
  944.     public void entityDeath(EntityDeathEvent e) {
  945.         e.setDroppedExp(0);
  946.         e.getDrops().removeAll(e.getDrops());
  947.     }
  948.  
  949.     @EventHandler
  950.     public void login(PlayerLoginEvent e) {
  951.         final Player player = e.getPlayer();
  952.         Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
  953.             public void run() {
  954.                 player.setHealth(20);
  955.                 player.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 200, 5));
  956.                 player.setFoodLevel(14);
  957.                 player.teleport(player.getWorld().getSpawnLocation());
  958.                 player.getInventory().clear();
  959.                 player.getInventory().setArmorContents(null);
  960.                 player.setExp(0);
  961.                 player.openInventory(kits(player));
  962.                 player.getInventory().setItem(8, kitselector());
  963.                 plugin.spawn(player);
  964.                 for (PotionEffect effect : player.getActivePotionEffects()) {
  965.                     player.removePotionEffect(effect.getType());
  966.                 }
  967.            
  968.                 getDataCoins(player);
  969.                 getDataDeaths(player);
  970.                 getDataKills(player);
  971.                 getDataScore(player);
  972.                 stats(player);
  973.             }
  974.         }, 10L);
  975.     }
  976.  
  977.     @EventHandler
  978.     public void clickKitSelector(PlayerInteractEvent e) {
  979.    
  980.         Player player = e.getPlayer();
  981.    
  982.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  983.             if (player.getItemInHand().hasItemMeta()) {
  984.                 if (player.getItemInHand().getType() == Material.NETHER_STAR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§7Kit Selector") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK || player.getItemInHand().getType() == Material.NETHER_STAR && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§7Kit Selector") && e.getAction() == e.getAction().RIGHT_CLICK_AIR) {
  985.                     player.openInventory(kits(player));
  986.                 }
  987.             }
  988.         }
  989.     }
  990.  
  991.     @EventHandler
  992.     public void stewMilk(PlayerInteractEvent e) {
  993.    
  994.         Player player = e.getPlayer();
  995.        
  996.         //Rabbit Stew
  997.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  998.             if (e.getAction() == e.getAction().RIGHT_CLICK_AIR || e.getAction() == e.getAction().RIGHT_CLICK_BLOCK) {
  999.                 if (player.getItemInHand().getType() == Material.RABBIT_STEW && player.getHealth() < player.getMaxHealth()) {
  1000.                     if (player.getMaxHealth() - player.getHealth() < 7.0) {
  1001.                         player.setHealth(player.getMaxHealth());
  1002.                     } else {
  1003.                         player.setHealth(player.getHealth() + 7.0);
  1004.                     }
  1005.                     CraftPlayer cPlayer = ((CraftPlayer) player);
  1006.                     PacketPlayOutEntityStatus eat = new PacketPlayOutEntityStatus(cPlayer.getHandle(), (byte) 9);
  1007.                     cPlayer.getHandle().playerConnection.sendPacket(eat);
  1008.                     player.setFoodLevel(14);
  1009.                     player.getItemInHand().setType(Material.BOWL);
  1010.                     player.getItemInHand().setItemMeta(null);
  1011.                 }
  1012.             }
  1013.         }
  1014.        
  1015.         //Milk
  1016.         if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  1017.             if (e.getAction() == e.getAction().RIGHT_CLICK_AIR || e.getAction() == e.getAction().RIGHT_CLICK_BLOCK) {
  1018.                 if (player.getItemInHand().getType() == Material.MILK_BUCKET) {
  1019.                     CraftPlayer cPlayer = ((CraftPlayer) player);
  1020.                     PacketPlayOutEntityStatus eat = new PacketPlayOutEntityStatus(cPlayer.getHandle(), (byte) 9);
  1021.                     cPlayer.getHandle().playerConnection.sendPacket(eat);
  1022.                     player.getItemInHand().setType(Material.BUCKET);
  1023.                     player.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 200, 0));
  1024.                     player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 60, 9));
  1025.                     player.getItemInHand().setItemMeta(null);
  1026.                 }
  1027.             }
  1028.         }
  1029.     }
  1030.  
  1031.     @EventHandler
  1032.     public void kitSelector(InventoryClickEvent e) {
  1033.  
  1034.         Player player = (Player) e.getWhoClicked();
  1035.         ItemStack item = e.getCurrentItem();
  1036.    
  1037.         if (e.getInventory().getTitle().equals("§5Kit Selector")) {
  1038.             if (e.getRawSlot() < 54 && e.getRawSlot() > -1){
  1039.                 if (e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR) {
  1040.                     if (item.getType() == Material.TNT) {
  1041.                         e.setCancelled(true);
  1042.                        
  1043.                         for (PotionEffectType potion: PotionEffectType.values()) {
  1044.                             if (potion != null) {
  1045.                                 player.removePotionEffect(potion);
  1046.                             }
  1047.                         }
  1048.                        
  1049.                         Terrorist(player);
  1050.                         player.closeInventory();
  1051.                         player.getInventory().setItem(8, kitselector());
  1052.                     }
  1053.                     if (item.getType() == Material.MILK_BUCKET) {
  1054.                         e.setCancelled(true);
  1055.                        
  1056.                         for (PotionEffectType potion: PotionEffectType.values()) {
  1057.                             if (potion != null) {
  1058.                                 player.removePotionEffect(potion);
  1059.                             }
  1060.                         }
  1061.                        
  1062.                         Milkman(player);
  1063.                         player.closeInventory();
  1064.                         player.getInventory().setItem(8, kitselector());
  1065.                     }
  1066.                     if (item.getType() == Material.SUGAR) {
  1067.                         e.setCancelled(true);
  1068.                        
  1069.                         for (PotionEffectType potion: PotionEffectType.values()) {
  1070.                             if (potion != null) {
  1071.                                 player.removePotionEffect(potion);
  1072.                             }
  1073.                         }
  1074.                        
  1075.                         Dash(player);
  1076.                         isSwitch.remove(player.getUniqueId());
  1077.                         isSwitch.put(player.getUniqueId(), true);
  1078.                         player.closeInventory();
  1079.                         player.getInventory().setItem(8, kitselector());
  1080.                     }
  1081.                     if (item.getType() == Material.INK_SACK) {
  1082.                         e.setCancelled(true);
  1083.                        
  1084.                         for (PotionEffectType potion: PotionEffectType.values()) {
  1085.                             if (potion != null) {
  1086.                                 player.removePotionEffect(potion);
  1087.                             }
  1088.                         }
  1089.                        
  1090.                         Soldier(player);
  1091.                         player.closeInventory();
  1092.                         player.getInventory().setItem(8, kitselector());
  1093.                     }
  1094.                     if (item.getType() == Material.IRON_BARDING) {
  1095.                         e.setCancelled(true);
  1096.                        
  1097.                         for (PotionEffectType potion: PotionEffectType.values()) {
  1098.                             if (potion != null) {
  1099.                                 player.removePotionEffect(potion);
  1100.                             }
  1101.                         }
  1102.                        
  1103.                         Engineer(player);
  1104.                         player.closeInventory();
  1105.                         player.getInventory().setItem(8, kitselector());
  1106.                     }
  1107.                 }
  1108.             }
  1109.         }
  1110.     }
  1111.  
  1112.     @EventHandler
  1113.     public void deathSound(PlayerDeathEvent e) {
  1114.         Player player = e.getEntity();
  1115.    
  1116.         Villager villager = player.getWorld().spawn(player.getLocation(), Villager.class);
  1117.         villager.setHealth(1);
  1118.         villager.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 1000, 100));
  1119.     }
  1120.  
  1121.     @EventHandler
  1122.     public void respawn(PlayerRespawnEvent e) {
  1123.    
  1124.         final Player player = e.getPlayer();
  1125.    
  1126.         Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
  1127.             public void run() {
  1128.                 player.setFoodLevel(14);
  1129.                 storePlayerDeaths(player, Integer.valueOf(getDataDeaths(player)) + 1);
  1130.                 storePlayerScore(player);
  1131.                 stats(player);
  1132.                 player.getInventory().setItem(8, kitselector());
  1133.                 plugin.spawn(player);
  1134.             }
  1135.         }, 5L);
  1136.         if (plugin.kit.get(player) == "terrorist") {
  1137.             Terrorist(player);
  1138.         }
  1139.         if (plugin.kit.get(player) == "milkman") {
  1140.             Milkman(player);
  1141.         }
  1142.         if (plugin.kit.get(player) == "dash") {
  1143.             Dash(player);
  1144.         }
  1145.         if (plugin.kit.get(player) == "soldier") {
  1146.             Soldier(player);
  1147.         }
  1148.         if (plugin.kit.get(player) == "engineer") {
  1149.             Engineer(player);
  1150.         }
  1151.     }
  1152.  
  1153.     @EventHandler
  1154.     public void jukeboxInventory(InventoryClickEvent e) {
  1155.    
  1156.         Player player = (Player) e.getWhoClicked();
  1157.         ItemStack item = e.getCurrentItem();
  1158.        
  1159.         if (e.getInventory().getTitle().equals("§8Song Library")) {
  1160.             if (e.getRawSlot() < 54 && e.getRawSlot() > -1){
  1161.                 if (e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR) {
  1162.                     if (item.getType() == Material.GOLD_RECORD) {
  1163.                         e.setCancelled(true);
  1164.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.GOLD_RECORD);
  1165.                     }
  1166.                     if (item.getType() == Material.GREEN_RECORD) {
  1167.                         e.setCancelled(true);
  1168.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.GREEN_RECORD);
  1169.                     }
  1170.                     if (item.getType() == Material.RECORD_3) {
  1171.                         e.setCancelled(true);
  1172.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_3);
  1173.                     }
  1174.                     if (item.getType() == Material.RECORD_4) {
  1175.                         e.setCancelled(true);
  1176.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_4);
  1177.                     }
  1178.                     if (item.getType() == Material.RECORD_5) {
  1179.                         e.setCancelled(true);
  1180.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_5);
  1181.                     }
  1182.                     if (item.getType() == Material.RECORD_6) {
  1183.                         e.setCancelled(true);
  1184.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_6);
  1185.                     }
  1186.                     if (item.getType() == Material.RECORD_7) {
  1187.                         e.setCancelled(true);
  1188.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_7);
  1189.                     }
  1190.                     if (item.getType() == Material.RECORD_8) {
  1191.                         e.setCancelled(true);
  1192.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_8);
  1193.                     }
  1194.                     if (item.getType() == Material.RECORD_9) {
  1195.                         e.setCancelled(true);
  1196.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_9);
  1197.                     }
  1198.                     if (item.getType() == Material.RECORD_10) {
  1199.                         e.setCancelled(true);
  1200.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_10);
  1201.                     }
  1202.                     if (item.getType() == Material.RECORD_11) {
  1203.                         e.setCancelled(true);
  1204.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_11);
  1205.                     }
  1206.                     if (item.getType() == Material.RECORD_12) {
  1207.                         e.setCancelled(true);
  1208.                         player.playEffect(player.getLocation(), Effect.RECORD_PLAY, Material.RECORD_12);
  1209.                     }
  1210.                 }
  1211.             }
  1212.         }
  1213.     }
  1214.    
  1215.     @EventHandler
  1216.     public void MilkMoo(PlayerInteractEntityEvent e) {
  1217.        
  1218.         Player player = e.getPlayer();
  1219.        
  1220.         if (e.getRightClicked() instanceof Player) {
  1221.             if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  1222.                 if (player.getItemInHand().getType() == Material.BUCKET) {
  1223.                     Player moo = (Player) e.getRightClicked();
  1224.                     if (moo.getUniqueId().equals(UUID.fromString("1c8419f1-03c3-46db-8a6e-41adbb8ddb8e"))) {
  1225.                         player.getItemInHand().setType(Material.MILK_BUCKET);
  1226.                     }
  1227.                 }
  1228.             }
  1229.         }
  1230.     }
  1231.    
  1232.     Boolean jasonSaySorry = false;
  1233.    
  1234.     @EventHandler
  1235.     public void JasonJoin(PlayerLoginEvent e) {
  1236.        
  1237.         final Player player = e.getPlayer();
  1238.        
  1239.         Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
  1240.             public void run() {
  1241.                 UUID jason = UUID.fromString("f8bd4e3f-e20c-4650-b3ba-1f286e71a150");
  1242.                 if (player.getUniqueId().equals(jason) && jasonSaySorry == false) {
  1243.                     player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 999999999, 7));
  1244.                     player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING, 999999999, 5));
  1245.                     player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 999999999, 150));
  1246.                     player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 999999999, 1));
  1247.                     player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 999999999, 1));
  1248.                     player.addPotionEffect(new PotionEffect(PotionEffectType.WEAKNESS, 999999999, 225));
  1249.                     player.sendMessage("§8<§5Witch Moo§8>§4BAD JUJU!");
  1250.                     player.sendMessage("§4Type §7'§4I'm sorry moo3oo3oo3. I'll add you to my hall of fame§7'§4 to remove the curse!");
  1251.                 }
  1252.             }
  1253.         }, 40L);
  1254.     }
  1255.    
  1256.     @EventHandler
  1257.     public void JasonSorry(AsyncPlayerChatEvent e) {
  1258.        
  1259.         final Player player = e.getPlayer();
  1260.        
  1261.         UUID jason = UUID.fromString("f8bd4e3f-e20c-4650-b3ba-1f286e71a150");
  1262.         if (player.getUniqueId().equals(jason) && e.getMessage().equals("I'm sorry moo3oo3oo3. I'll add you to my hall of fame")) {
  1263.             player.getActivePotionEffects().clear();
  1264.             jasonSaySorry = true;
  1265.         }
  1266.     }
  1267.    
  1268.     @EventHandler
  1269.     public void playerDeath(PlayerDeathEvent e) {
  1270.        
  1271.         Player player = e.getEntity();
  1272.         Player killer = player.getKiller();
  1273.        
  1274.         if (player.getKiller() instanceof Player) {
  1275.             if (killer != player) {
  1276.                 //Give 4 coins
  1277.                 storePlayercoins(killer, Integer.valueOf(getDataCoins(killer)) + 4);
  1278.                 //Adds 1 to kills
  1279.                 storePlayerKills(killer, Integer.valueOf(getDataKills(killer)) + 1);
  1280.                 //Calculates percent
  1281.                 storePlayerScore(player);
  1282.                 stats(killer);
  1283.             }
  1284.         }
  1285.     }
  1286.  
  1287.     @EventHandler
  1288.     public void food(FoodLevelChangeEvent e) {
  1289.    
  1290.         if (e.getEntity() instanceof Player) {
  1291.             Player player = (Player) e.getEntity();
  1292.             e.setCancelled(true);
  1293.         }
  1294.     }
  1295.    
  1296.     HashMap<UUID, Long> countdown = new HashMap<UUID, Long>();
  1297.    
  1298.     @EventHandler
  1299.     public void Bessie(PlayerInteractEvent e) {
  1300.    
  1301.         final Player player = e.getPlayer();
  1302.         if (player.getItemInHand().hasItemMeta()) {
  1303.             if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.AIR) {
  1304.                 if (player.getItemInHand().getType() == Material.MONSTER_EGG && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§rOl' Bessie") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK && player.getItemInHand().getDurability() == 92) {
  1305.                     e.setCancelled(true);
  1306.                     final Cow cow = player.getWorld().spawn(e.getClickedBlock().getRelative(e.getBlockFace()).getLocation().add(0.5, 0, 0.5), Cow.class);
  1307.                     player.getItemInHand().setDurability((short) 0);
  1308.                     cow.setCustomName(player.getName());
  1309.                    
  1310.                     //Cow gives you milk
  1311.                     final BukkitTask give = new BukkitRunnable()
  1312.                     {
  1313.                         public void run()
  1314.                         {
  1315.                             if (cow.isDead() == false) {
  1316.                                 List<org.bukkit.entity.Entity> nearby = cow.getNearbyEntities(3, 3, 3);
  1317.                                 for (org.bukkit.entity.Entity entity: nearby) {
  1318.                                     if (entity instanceof Player) {
  1319.                                         if (((Player) entity).getInventory().contains(Material.BUCKET) && cow.getCustomName() == player.getName()) {
  1320.                                             ((Player) entity).getInventory().removeItem(new ItemStack(Material.BUCKET, 1));
  1321.                                             player.updateInventory();
  1322.                                            
  1323.                                             ItemStack milk = new ItemStack(Material.MILK_BUCKET);
  1324.                                             ItemMeta Milkmeta = milk.getItemMeta();
  1325.                                             List<String> Milklores = new ArrayList<String>();
  1326.                                             Milklores.add("§7§oDrink for strong bones and rejuvenate effect");
  1327.                                             Milkmeta.setLore(Milklores);
  1328.                                             milk.setItemMeta(Milkmeta);
  1329.                                            
  1330.                                             ((Player) entity).getInventory().addItem(milk);
  1331.                                         }
  1332.                                     }
  1333.                                    
  1334.                                 }
  1335.                             } else {
  1336.                                 cancel();
  1337.                                
  1338.                             }
  1339.                         }
  1340.                     }.runTaskTimer(plugin, 100L, 100L);
  1341.                    
  1342.                     //Times up
  1343.                     new BukkitRunnable()
  1344.                     {
  1345.                         public void run()
  1346.                         {  
  1347.                             cow.remove();
  1348.                             give.cancel();
  1349.                         }
  1350.                     }.runTaskLater(plugin, 500L);
  1351.                    
  1352.                     //Give the restored egg
  1353.                     final BukkitTask giveEgg = new BukkitRunnable()
  1354.                     {
  1355.                         public void run()
  1356.                         {  
  1357.                             ItemStack Bessie = new ItemStack(Material.MONSTER_EGG, 1, (short) 0);
  1358.                             ItemMeta Bessiemeta = Bessie.getItemMeta();
  1359.                             List<String> Bessielores = new ArrayList<String>();
  1360.                             Bessielores.add("§7§oSpawn her in to slowy refill milk bucket");
  1361.                             Bessiemeta.setDisplayName("§rOl' Bessie");
  1362.                             Bessiemeta.setLore(Bessielores);
  1363.                             Bessiemeta.spigot().setUnbreakable(true);
  1364.                             Bessie.setItemMeta(Bessiemeta);
  1365.                            
  1366.                             player.getInventory().removeItem(Bessie);
  1367.                             Bessie.setDurability((short) 92);
  1368.                             player.getInventory().addItem(Bessie);
  1369.                         }
  1370.                     }.runTaskLater(plugin, 3*60*20L);
  1371.                    
  1372.                     new BukkitRunnable()
  1373.                     {
  1374.                         public void run()
  1375.                         {  
  1376.                             ItemStack Bessie = new ItemStack(Material.MONSTER_EGG, 1, (short) 92);
  1377.                             ItemMeta Bessiemeta = Bessie.getItemMeta();
  1378.                             List<String> Bessielores = new ArrayList<String>();
  1379.                             Bessielores.add("§7§oSpawn her in to slowy refill milk bucket");
  1380.                             Bessiemeta.setDisplayName("§rOl' Bessie");
  1381.                             Bessiemeta.setLore(Bessielores);
  1382.                             Bessiemeta.spigot().setUnbreakable(true);
  1383.                             Bessie.setItemMeta(Bessiemeta);
  1384.                            
  1385.                             if (player.isDead() || plugin.kit.get(player) != "milkman" || player.getInventory().contains(Bessie)) {
  1386.                                 giveEgg.cancel();
  1387.                                 cow.remove();
  1388.                                 cancel();
  1389.                             }
  1390.                         }
  1391.                     }.runTaskTimer(plugin, 0L, 1L);
  1392.                    
  1393.                     countdown.put(player.getUniqueId(), System.currentTimeMillis());
  1394.                 }
  1395.                
  1396.                 //Time left
  1397.                 if (player.getItemInHand().getType() == Material.MONSTER_EGG && player.getInventory().getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§rOl' Bessie") && e.getAction() == e.getAction().RIGHT_CLICK_BLOCK && player.getItemInHand().getDurability() == 0) {
  1398.                     e.setCancelled(true);
  1399.                     if(System.currentTimeMillis() - (countdown.containsKey(player.getUniqueId()) ? countdown.get(player.getUniqueId()) : 0) >= 1000*60*3) {
  1400.                     } else {
  1401.                         player.sendMessage("§4" +  String.valueOf((int)(180 - Math.floor((System.currentTimeMillis()  - countdown.get(player.getUniqueId()))/1000))) + " seconds remaining");
  1402.                     }
  1403.                 }
  1404.             }
  1405.         }
  1406.     }
  1407.    
  1408.     @EventHandler
  1409.     public void noDamage(EntityDamageEvent e) {
  1410.         Entity entity = e.getEntity();
  1411.         if (entity instanceof Player) {
  1412.             Player player = (Player) e.getEntity();
  1413.             if (player.getWorld().getSpawnLocation().getWorld() == player.getWorld() && player.getLocation().distance(player.getWorld().getSpawnLocation()) <= plugin.getConfig().getInt("Spawn Protection Radius")) {
  1414.                 e.setCancelled(true);
  1415.             }
  1416.         }
  1417.     }
  1418. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement