Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.54 KB | None | 0 0
  1. package kits;
  2.  
  3. import base.*;
  4. import org.bukkit.inventory.*;
  5. import org.bukkit.inventory.meta.*;
  6. import org.bukkit.entity.*;
  7. import me.metrofico.anni.basegame.*;
  8. import org.bukkit.*;
  9. import java.util.*;
  10. import me.metrofico.anni.itemmenu.*;
  11. import me.metrofico.anni.annihilation.*;
  12. import me.metrofico.anni.utils.*;
  13. import me.metrofico.anni.language.*;
  14. import org.bukkit.scheduler.*;
  15. import org.bukkit.plugin.*;
  16. import me.metrofico.anni.customevents.*;
  17. import org.bukkit.event.*;
  18. import me.metrofico.anni.kits.*;
  19. import org.bukkit.enchantments.*;
  20. import org.bukkit.potion.*;
  21. import me.metrofico.anni.tools.runnables.*;
  22.  
  23. public class MineroPlus extends SpecialItemKit
  24. {
  25.     private HashSet<String> allowed_break_duplicate;
  26.    
  27.     public MineroPlus() {
  28.         this.allowed_break_duplicate = new HashSet<String>();
  29.     }
  30.    
  31.     @Override
  32.     protected void onInitialize() {
  33.         this.allowed_break_duplicate = new HashSet<String>();
  34.     }
  35.    
  36.     @Override
  37.     protected ItemStack specialItem() {
  38.         final ItemStack hammer = KitUtils.addSoulbound(new ItemStack(Material.BLAZE_POWDER));
  39.         final ItemMeta meta = hammer.getItemMeta();
  40.         meta.setDisplayName(String.valueOf(String.valueOf(this.getSpecialItemName())) + " " + ChatColor.GREEN + "LISTO");
  41.         hammer.setItemMeta(meta);
  42.         return hammer;
  43.     }
  44.    
  45.     @Override
  46.     protected String defaultSpecialItemName() {
  47.         return ChatColor.YELLOW + "&5Duplicador";
  48.     }
  49.    
  50.     @Override
  51.     protected boolean isSpecialItem(final ItemStack stack) {
  52.         return stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName() && stack.getItemMeta().getDisplayName().contains(this.getSpecialItemName()) && KitUtils.isSoulbound(stack);
  53.     }
  54.    
  55.     @Override
  56.     protected boolean performSpecialAction(final Player var1, final AnniPlayer var2) {
  57.         if (!this.allowed_break_duplicate.contains(var1.getPlayer().getName().toLowerCase())) {
  58.             this.allowed_break_duplicate.add(var1.getPlayer().getName().toLowerCase());
  59.             this.allowed(var2.getName().toLowerCase());
  60.             var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a¡El duplicador se ha activado!"));
  61.             var1.getWorld().playSound(var1.getLocation(), Sound.SLIME_WALK, 5.0f, 5.0f);
  62.         }
  63.         return true;
  64.     }
  65.    
  66.     @Override
  67.     protected long getDelayLength() {
  68.         return 40000L;
  69.     }
  70.    
  71.     @Override
  72.     protected boolean useDefaultChecking() {
  73.         return true;
  74.     }
  75.    
  76.     @Override
  77.     protected String getInternalName() {
  78.         return "&2MineroPlus";
  79.     }
  80.    
  81.     public List<String> getFinalLore(final Player arg0) {
  82.         final ArrayList<String> all = new ArrayList<String>();
  83.         if (arg0.hasPermission("anni.kit." + this.getPerms())) {
  84.             all.add("");
  85.             all.add(ChatColor.GREEN + "Desbloqueado");
  86.         }
  87.         else {
  88.             if (10000 - NexoAPI.obtenerMineralesPicados(arg0.getName()) <= 0) {
  89.                 all.add("");
  90.                 all.add(ChatColor.GREEN + "¡Ya has picado más de 10.000 minerales!");
  91.                 all.add("");
  92.                 all.add(ChatColor.GREEN + "Click para desbloquear");
  93.             }
  94.             else {
  95.               all.add("");
  96.               all.add(ChatColor.GREEN + "&c¡Necesitas picar 10.000 minerales");
  97.               all.add(ChatColor.GREEN + "&cpara poder desbloquear este kit!");
  98.               all.add(ChatColor.GOLD + "&cRestantes&7: &b" + (10000 - NexoAPI.obtenerMineralesPicados(arg0.getName())));
  99.             }
  100.         }
  101.         return all;
  102.     }
  103.    
  104.     public List<ItemStack> itemsKit() {
  105.         return (List<ItemStack>)this.getFinalLoadout().getLoadout();
  106.     }
  107.    
  108.     public boolean onClick(ItemClickEvent arg0)
  109.     {
  110.       Player player = arg0.getPlayer();
  111.       if (10000 - NexoAPI.obtenerMineralesPicados(player.getName()) <= 0)
  112.       {
  113.         Util.addKit(player.getName(), getPerms());
  114.         player.sendMessage(ChatColor.GREEN + "¡Kit desbloqueado!");
  115.         player.playSound(player.getLocation(), Sound.ANVIL_LAND, 5.0F, 4.0F);
  116.       }
  117.       else
  118.       {
  119.         player.sendMessage(Lang.CANT_SELECT_KIT.toString());
  120.       }
  121.       return true;
  122.     }
  123.    
  124.     private void allowed(final String player) {
  125.         new BukkitRunnable() {
  126.             public void run() {
  127.                 synchronized (this) {
  128.                     MineroPlus.this.allowed_break_duplicate.remove(player.toLowerCase());
  129.                 }
  130.             }
  131.         }.runTaskLaterAsynchronously((Plugin)DestroyTheNexusMain.getPlugin((Class)DestroyTheNexusMain.class), 420L);
  132.     }
  133.    
  134.     public String getPerms() {
  135.         return "MineroPlus";
  136.     }
  137.    
  138.     @Override
  139.     protected ItemStack getIcon() {
  140.         return new ItemStack(Material.DIAMOND_PICKAXE);
  141.     }
  142.    
  143.     @EventHandler(priority = EventPriority.HIGHEST)
  144.     public void onBreakMineral(final ResourceBreakEvent mineralRoto) {
  145.         if (this.allowed_break_duplicate.contains(mineralRoto.getPlayer().getPlayer().getName().toLowerCase())) {
  146.             final Material m = mineralRoto.getResource().Type;
  147.             if (m == Material.COAL_ORE || m == Material.IRON_ORE || m == Material.EMERALD_ORE || m == Material.GOLD_ORE || m == Material.REDSTONE_ORE || m == Material.GLOWING_REDSTONE_ORE) {
  148.                 final ItemStack[] ck = mineralRoto.getProducts();
  149.                 ItemStack[] array;
  150.                 for (int length = (array = ck).length, i = 0; i < length; ++i) {
  151.                     final ItemStack k = array[i];
  152.                     k.setAmount(k.getAmount() * 2);
  153.                 }
  154.                 mineralRoto.setProducts(ck);
  155.             }
  156.         }
  157.        
  158.     }
  159.    
  160.     @Override
  161.     protected List<String> getDefaultDescription() {
  162.         final ArrayList<String> l = new ArrayList<String>();
  163.         this.addToList(l, "&7Tienes la habilidad de picar más", "&7rápido y conseguir el doble", "&7ítems, la habilidad no afecta al diamante.");
  164.         return l;
  165.     }
  166.    
  167.     public void cleanup(final Player arg0) {
  168.     }
  169.    
  170.     @Override
  171.     protected Loadout getFinalLoadout() {
  172.         return new Loadout().addWoodSword().addStonePick().addWoodAxe().addSoulboundItem(new ItemStack(Material.WORKBENCH)).addItem(super.getSpecialItem()).addNavCompass();
  173.     }
  174.    
  175.     public void onPlayerSpawn(final Player player) {
  176.         RunTask.later(() -> player.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, Integer.MAX_VALUE, 0, true, true)), 20L);
  177.         super.onPlayerSpawn(player);
  178.     }
  179.  
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement