Advertisement
Guest User

Main Class

a guest
Jan 4th, 2015
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package me.racoonsru1e.ArmorAbilities;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.logging.Logger;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Material;
  11. import org.bukkit.Sound;
  12. import org.bukkit.entity.Entity;
  13. import org.bukkit.entity.LivingEntity;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.event.EventHandler;
  16. import org.bukkit.event.Listener;
  17. import org.bukkit.event.block.Action;
  18. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  19. import org.bukkit.event.inventory.InventoryCloseEvent;
  20. import org.bukkit.event.player.PlayerInteractEvent;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.PlayerInventory;
  23. import org.bukkit.plugin.PluginDescriptionFile;
  24. import org.bukkit.plugin.java.JavaPlugin;
  25. import org.bukkit.potion.PotionEffect;
  26. import org.bukkit.potion.PotionEffectType;
  27. import org.bukkit.scheduler.BukkitRunnable;
  28. import org.bukkit.util.Vector;
  29.  
  30. public class Main extends JavaPlugin implements Listener{
  31.     List<String> Firebow = new ArrayList<String>();
  32.     List<String> Venombow = new ArrayList<String>();
  33.     List<String> Slowbow = new ArrayList<String>();
  34.     List<String> nolog = new ArrayList<String>();
  35.  
  36.     private HashMap<Player, Integer> cooldownTime;
  37.     private HashMap<Player, BukkitRunnable> cooldownTask;
  38.     private HashMap<Player, Integer> cooldownTime1;
  39.     private HashMap<Player, BukkitRunnable> cooldownTask1;
  40.     public final Logger logger = Logger.getLogger("Minecraft");
  41.     public int tid = 0;
  42.     public static int running = 0;
  43.     public static long interval = 10;
  44.     public void onEnable(){
  45.             getServer().getPluginManager().registerEvents(this, this);
  46.             PluginDescriptionFile pdfFile = this.getDescription();
  47.             this.logger.info(pdfFile.getName() + " version " + pdfFile.getVersion() + " Abilities Has Been Enabled!");
  48.             cooldownTime = new HashMap<Player, Integer>();
  49.             cooldownTask = new HashMap<Player, BukkitRunnable>();
  50.         }
  51.      
  52.         public void OnDisable(){
  53.             PluginDescriptionFile pdfFile = this.getDescription();
  54.             this.logger.info(pdfFile.getName() + " version " + pdfFile.getVersion() + " Abilities Has Been Disabled!");
  55.         }
  56.      
  57.         private boolean hasArmorType(ItemStack item, Material type)
  58.         {
  59.             return (item == null ? false : item.getType() == type);
  60.         }
  61.         @EventHandler
  62.         public void eventInventoryClose(final InventoryCloseEvent event){
  63.             final Player player = (Player) event.getPlayer();
  64.             final PlayerInventory inventory = event.getPlayer().getInventory();
  65.             if(hasArmorType(inventory.getHelmet(), Material.LEATHER_HELMET)
  66.             && hasArmorType(inventory.getChestplate(), Material.LEATHER_CHESTPLATE)
  67.             && hasArmorType(inventory.getLeggings(), Material.LEATHER_LEGGINGS)
  68.             && hasArmorType(inventory.getBoots(), Material.LEATHER_BOOTS)){
  69.                 player.sendMessage(ChatColor.GREEN + "Armor Set: " + ChatColor.BLUE + "Assassin");
  70.                 player.sendMessage(ChatColor.DARK_PURPLE + "Passive: " + ChatColor.LIGHT_PURPLE + "Speed II");
  71.                 player.sendMessage(ChatColor.DARK_PURPLE + "Passive: " + ChatColor.LIGHT_PURPLE + "Poison Dagger");
  72.                 player.sendMessage(ChatColor.BLUE + "Active:" + ChatColor.RED + " Leap");
  73.                 player.getWorld().playSound(player.getLocation(), Sound.LEVEL_UP, 1.0F, 17.0F);
  74.                 tid = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
  75.                     public void run(){
  76.                         ((Player)event.getPlayer()).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 40, 0));
  77.                     }
  78.                 }
  79.                 , 0, 20);
  80.             }
  81.            
  82.             if(hasArmorType(inventory.getHelmet(), Material.IRON_HELMET)
  83.             && hasArmorType(inventory.getChestplate(), Material.IRON_CHESTPLATE)
  84.             && hasArmorType(inventory.getLeggings(), Material.IRON_LEGGINGS)
  85.             && hasArmorType(inventory.getBoots(), Material.IRON_BOOTS)){
  86.                 Bukkit.getScheduler().cancelTask(this.tid);
  87.                 ((Player)event.getPlayer()).removePotionEffect(PotionEffectType.SPEED);
  88.                 player.sendMessage(ChatColor.GREEN + "Armor Set: " + ChatColor.GRAY + "Warrior");
  89.                 player.sendMessage(ChatColor.BLUE + "Active: " + ChatColor.LIGHT_PURPLE + "Resist");
  90.                 player.sendMessage(ChatColor.BLUE + "Active: " + ChatColor.LIGHT_PURPLE + "Charge");
  91.                 player.getWorld().playSound(player.getLocation(), Sound.LEVEL_UP, 1.0F, 17.0F);
  92.                             }
  93.             if(hasArmorType(inventory.getHelmet(), Material.DIAMOND_HELMET)
  94.                     && hasArmorType(inventory.getChestplate(), Material.DIAMOND_CHESTPLATE)
  95.                     && hasArmorType(inventory.getLeggings(), Material.DIAMOND_LEGGINGS)
  96.                     && hasArmorType(inventory.getBoots(), Material.DIAMOND_BOOTS)){
  97.                         Bukkit.getScheduler().cancelTask(this.tid);
  98.                         ((Player)event.getPlayer()).removePotionEffect(PotionEffectType.SPEED);
  99.                         player.sendMessage(ChatColor.GREEN + "Armor Set: " + ChatColor.GRAY + "Champion");
  100.                         player.sendMessage(ChatColor.DARK_PURPLE + "Passive: " + ChatColor.LIGHT_PURPLE + "Heavy Armor (Slowness I, Resistance I)");
  101.                         player.sendMessage(ChatColor.DARK_PURPLE + "Passive: " + ChatColor.LIGHT_PURPLE + "Restricted Blows (Weakness I)");
  102.                         player.sendMessage(ChatColor.BLUE + "Active: " + ChatColor.LIGHT_PURPLE + "Gravitational Anomaly");
  103.                         player.getWorld().playSound(player.getLocation(), Sound.LEVEL_UP, 1.0F, 17.0F);
  104.                                     }
  105.             if(hasArmorType(inventory.getHelmet(), Material.GOLD_HELMET)
  106.                     && hasArmorType(inventory.getChestplate(), Material.GOLD_CHESTPLATE)
  107.                     && hasArmorType(inventory.getLeggings(), Material.GOLD_LEGGINGS)
  108.                     && hasArmorType(inventory.getBoots(), Material.GOLD_BOOTS)){
  109.                         Bukkit.getScheduler().cancelTask(this.tid);
  110.                         ((Player)event.getPlayer()).removePotionEffect(PotionEffectType.SPEED);
  111.                         player.sendMessage(ChatColor.GREEN + "Armor Set: " + ChatColor.GOLD + "Warlock");
  112.                         player.sendMessage(ChatColor.DARK_PURPLE + "Passive: " + ChatColor.LIGHT_PURPLE + "Aura of Corruption");
  113.                         player.getWorld().playSound(player.getLocation(), Sound.LEVEL_UP, 1.0F, 17.0F);
  114.                         for (Entity e : player.getNearbyEntities(10, 10, 10)){
  115.                          if(e instanceof Player){
  116.                              ((Player) e).addPotionEffect(new PotionEffect(PotionEffectType.POISON, 5, 1));
  117.                              ((Player) e).sendMessage(ChatColor.GREEN + "You feel your heart corrupting...");
  118.                                     }
  119.             if(hasArmorType(inventory.getHelmet(), Material.CHAINMAIL_HELMET)
  120.                     && hasArmorType(inventory.getChestplate(), Material.CHAINMAIL_CHESTPLATE)
  121.                     && hasArmorType(inventory.getLeggings(), Material.CHAINMAIL_LEGGINGS)
  122.                     && hasArmorType(inventory.getBoots(), Material.CHAINMAIL_BOOTS)){
  123.                         Bukkit.getScheduler().cancelTask(this.tid);
  124.                         ((Player)event.getPlayer()).removePotionEffect(PotionEffectType.SPEED);
  125.                         player.sendMessage(ChatColor.GREEN + "Armor Set: " + ChatColor.AQUA + "Archer");
  126.                         player.sendMessage(ChatColor.BLUE + "Active: " + ChatColor.LIGHT_PURPLE + "Bowtypes");
  127.                         player.getWorld().playSound(player.getLocation(), Sound.LEVEL_UP, 1.0F, 17.0F);
  128.                         Firebow.add(player.getName());
  129.                                     }
  130.             if(inventory.getHelmet() == null
  131.                     || inventory.getChestplate() == null
  132.                     || inventory.getLeggings() == null
  133.                     || inventory.getBoots() == null){
  134.                             ((Player)event.getPlayer()).sendMessage("Armor Set: None");
  135.                         }
  136.                     }
  137.                 }
  138.             }
  139.         @EventHandler
  140.         public void onPlayerInteract(final PlayerInteractEvent event){
  141.            final Player player = event.getPlayer();
  142.            
  143.            if(player.getInventory().getBoots().getType() == Material.LEATHER_BOOTS){
  144.                 if(player.getInventory().getLeggings().getType() == Material.LEATHER_LEGGINGS){
  145.                     if(player.getInventory().getChestplate().getType() == Material.LEATHER_CHESTPLATE){
  146.                         if(player.getInventory().getHelmet().getType() == Material.LEATHER_HELMET){
  147.                             if(player.getItemInHand().getType() == Material.IRON_AXE){
  148.                if (event.getAction() == Action. RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK ){
  149.                    if(cooldownTime.containsKey(player)){
  150.                        if(player.getItemInHand().getType() == Material.IRON_AXE){
  151.                        player.sendMessage(ChatColor.RED + "You must wait for " + ChatColor.GREEN + cooldownTime.get(player) + " seconds."
  152.                                + ChatColor.RED + " before you may use " + ChatColor.GREEN + "Leap " + ChatColor.RED + "again!");
  153.                        return;
  154.                    }
  155.                        }
  156.               player.sendMessage(ChatColor.BLUE + "You used" + ChatColor.GREEN + " Leap!" );
  157.               player.setVelocity(player.getLocation().getDirection().multiply(1.5));
  158.               player.getWorld().playSound(player.getLocation(), Sound.FIZZ, 1.0F, 17.0F);
  159.              
  160.               cooldownTime.put(player, 5);
  161.               cooldownTask.put(player, new BukkitRunnable(){
  162.                   public void run(){
  163.                       cooldownTime.put(player, cooldownTime.get(player) - 1);
  164.                       if(cooldownTime.get(player) == 0){
  165.                           cooldownTime.remove(player);
  166.                           cooldownTask.remove(player);
  167.                           cancel();
  168.                       }
  169.                   }
  170.               });              
  171.               cooldownTask.get(player).runTaskTimer(this, 20, 20);
  172.               return;
  173.                             }
  174.                return;
  175.                         }
  176.                     }      
  177.                 }
  178.             }
  179.         }
  180.         }
  181.        @EventHandler
  182.        public void onPlayerInteract1(final PlayerInteractEvent event){
  183.            final Player player = event.getPlayer();
  184.            if(player.getInventory().getBoots().getType() == Material.IRON_BOOTS){
  185.                if(player.getInventory().getLeggings().getType() == Material.IRON_LEGGINGS){
  186.                 if(player.getInventory().getChestplate().getType() == Material.IRON_CHESTPLATE){
  187.                  if(player.getInventory().getHelmet().getType() == Material.IRON_HELMET){
  188.                      if(player.getItemInHand().getType() == Material.IRON_AXE){
  189.                      if (event.getAction() == Action. RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK ){
  190.                          if (event.getAction() == Action. RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK ){
  191.                            if(cooldownTime.containsKey(player)){
  192.                                if(player.getItemInHand().getType() == Material.IRON_AXE){
  193.                                player.sendMessage(ChatColor.RED + "You must wait for " + ChatColor.GREEN + cooldownTime.get(player) + " seconds."
  194.                                        + ChatColor.RED + " before you may use " + ChatColor.GREEN + "Charge " + ChatColor.RED + "again!");
  195.                                return;
  196.                              }
  197.                                }
  198.                     player.sendMessage(ChatColor.BLUE + "You used: " + ChatColor.GREEN + "Charge!");
  199.                     player.getWorld().playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 1.0F, 17.0F);
  200.                     player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 6*20, 1));
  201.                     player.sendMessage(ChatColor.RED + "You must wait 12 seconds until you may use " + ChatColor.GREEN + "Charge " + ChatColor.RED + "again.");
  202.                    
  203.                     cooldownTime.put(player, 12);
  204.                     cooldownTask.put(player, new BukkitRunnable(){
  205.                       public void run(){
  206.                           cooldownTime.put(player, cooldownTime.get(player) - 1);
  207.                           if(cooldownTime.get(player) == 0){
  208.                               cooldownTime.remove(player);
  209.                               cooldownTask.remove(player);
  210.                               cancel();
  211.                           }
  212.                       }
  213.                     });              
  214.                     cooldownTask.get(player).runTaskTimer(this, 20, 20);
  215.                     return;
  216.                                 }
  217.                      return;
  218.                             }
  219.                         }  
  220.                     }
  221.                 }
  222.             }}
  223.        }
  224.        private ArrayList<String> slam = new ArrayList<String>();
  225.        @EventHandler
  226.        public void onPlayerInteract2(final PlayerInteractEvent event){
  227.            if(slam.contains(event.getPlayer().getName())){ event.setCancelled(true);; return;}
  228.            final Player player = event.getPlayer();
  229.            if(player.getInventory().getBoots().getType() == Material.DIAMOND_BOOTS){
  230.                if(player.getInventory().getLeggings().getType() == Material.DIAMOND_LEGGINGS){
  231.                    if(player.getInventory().getChestplate().getType() == Material.DIAMOND_CHESTPLATE){
  232.                        if(player.getInventory().getHelmet().getType() == Material.DIAMOND_HELMET){
  233.                            if(player.getItemInHand().getType() == Material.DIAMOND_AXE){
  234.                                if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK){
  235.                                    player.sendMessage(ChatColor.BLUE + "You used: " + ChatColor.GREEN + "Slam!");
  236.                                    player.getWorld().playSound(player.getLocation(), Sound.IRONGOLEM_THROW, 1.0F, 17.0F);
  237.                                    for(Entity e : player.getNearbyEntities(5, 2, 5)){
  238.                                        if(e instanceof Entity || e instanceof Player){
  239.                                            e.setVelocity(new Vector(0,1.2,0));
  240.                                            slam.add(player.getName());
  241.                                        }
  242.                                    }     
  243.                                }
  244.                            }
  245.                        }
  246.                    }
  247.                }
  248.            }
  249.        }
  250.        private ArrayList<String> resist = new ArrayList<String>();
  251.        @EventHandler
  252.        public void onEntityDamageSnail(EntityDamageByEntityEvent event) {
  253.          if(resist.contains(event.getEntity().getEntityId())) { event.setCancelled(true); return;}
  254.          final Player player = (Player) event.getEntity();
  255.          final Player pd = (Player)event.getDamager();
  256.          if(((event.getDamager() instanceof Player)) && ((event.getEntity() instanceof Player))) {
  257.           if(pd.getInventory().getBoots().getType() == Material.LEATHER_BOOTS){
  258.                 if(pd.getInventory().getLeggings().getType() == Material.LEATHER_LEGGINGS){
  259.                     if(pd.getInventory().getChestplate().getType() == Material.LEATHER_CHESTPLATE){
  260.                         if(pd.getInventory().getHelmet().getType() == Material.LEATHER_HELMET){
  261.                           if(pd.getItemInHand().getType() == Material.MELON_STEM){
  262.                           PotionEffect p1 = new PotionEffect(PotionEffectType.POISON, 60, 1);
  263.                           PotionEffect p2 = new PotionEffect(PotionEffectType.SLOW, 60, 1);
  264.                           p1.apply((LivingEntity)event.getEntity());
  265.                           p2.apply((LivingEntity)event.getEntity());
  266.                                 }      
  267.                             }              
  268.                         }
  269.                     }                  
  270.             }          
  271.             }
  272.          if(player.getInventory().getBoots().getType() == Material.IRON_BOOTS){
  273.              if(player.getInventory().getLeggings().getType() == Material.IRON_LEGGINGS){
  274.               if(player.getInventory().getChestplate().getType() == Material.IRON_CHESTPLATE){
  275.                if(player.getInventory().getHelmet().getType() == Material.IRON_HELMET){
  276.                 if(player.isBlocking()){
  277.                   player.sendMessage(ChatColor.BLUE + "You used: " + ChatColor.GREEN + "Resist!");
  278.                   player.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 2*20, 126));
  279.                   player.getWorld().playSound(player.getLocation(), Sound.BLAZE_HIT, 1.0F, 17.0F);
  280.                   resist.add(player.getName());
  281.                   player.sendMessage(ChatColor.RED + "You must wait 10 seconds until you may use " + ChatColor.GREEN + "Resist " + ChatColor.RED + "again.");
  282.                   getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  283.                    public void run(){
  284.                          player.sendMessage(ChatColor.GREEN + "You may now use Resist!");
  285.                           resist.remove(player);
  286.                                 }
  287.                                 }, 200);
  288.                             }
  289.                     }
  290.                     }    
  291.                 }
  292.             }
  293.          
  294.        }
  295. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement