Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.17 KB | None | 0 0
  1. private boolean isWeapon(final Material material) {
  2.         switch (material) {
  3.             case WOOD_SWORD:
  4.             case STONE_SWORD:
  5.             case GOLD_SWORD:
  6.             case IRON_SWORD:
  7.             case DIAMOND_SWORD:
  8.             case BOW:
  9.             case ARROW:
  10.             case FLINT_AND_STEEL:
  11.             case FISHING_ROD:
  12.             case WOOD_HOE:
  13.             case STONE_HOE:
  14.             case GOLD_HOE:
  15.             case IRON_HOE:
  16.             case DIAMOND_HOE:
  17.             case WOOD_SPADE:
  18.             case STONE_SPADE:
  19.             case GOLD_SPADE:
  20.             case IRON_SPADE:
  21.             case DIAMOND_SPADE:
  22.             case WOOD_PICKAXE:
  23.             case STONE_PICKAXE:
  24.             case GOLD_PICKAXE:
  25.             case IRON_PICKAXE:
  26.             case DIAMOND_PICKAXE:
  27.             case WOOD_AXE:
  28.             case STONE_AXE:
  29.             case GOLD_AXE:
  30.             case IRON_AXE:
  31.             case DIAMOND_AXE:
  32.                 return true;
  33.  
  34.             default:
  35.                 return false;
  36.         }
  37.     }
  38.  
  39.     private int getArmorWorth(final ItemStack item) {
  40.         final int[] armorWorth = {0};
  41.  
  42.         if (!this.isArmor(item.getType()))
  43.             return 0;
  44.  
  45.         switch (item.getType()) {
  46.             case DIAMOND_HELMET:
  47.                 armorWorth[0] += 363;
  48.                 armorWorth[0] -= item.getDurability();
  49.             case DIAMOND_CHESTPLATE:
  50.                 armorWorth[0] += 528;
  51.                 armorWorth[0] -= item.getDurability();
  52.             case DIAMOND_LEGGINGS:
  53.                 armorWorth[0] += 495;
  54.                 armorWorth[0] -= item.getDurability();
  55.             case DIAMOND_BOOTS:
  56.                 armorWorth[0] += 429;
  57.                 armorWorth[0] -= item.getDurability();
  58.  
  59.                 armorWorth[0] += 500;
  60.                 break;
  61.  
  62.             case IRON_HELMET:
  63.                 armorWorth[0] += 165;
  64.                 armorWorth[0] -= item.getDurability();
  65.             case IRON_CHESTPLATE:
  66.                 armorWorth[0] += 240;
  67.                 armorWorth[0] -= item.getDurability();
  68.             case IRON_LEGGINGS:
  69.                 armorWorth[0] += 225;
  70.                 armorWorth[0] -= item.getDurability();
  71.             case IRON_BOOTS:
  72.                 armorWorth[0] += 195;
  73.                 armorWorth[0] -= item.getDurability();
  74.  
  75.                 armorWorth[0] += 400;
  76.                 break;
  77.  
  78.             case CHAINMAIL_HELMET:
  79.                 armorWorth[0] += 165;
  80.                 armorWorth[0] -= item.getDurability();
  81.             case CHAINMAIL_CHESTPLATE:
  82.                 armorWorth[0] += 240;
  83.                 armorWorth[0] -= item.getDurability();
  84.             case CHAINMAIL_LEGGINGS:
  85.                 armorWorth[0] += 225;
  86.                 armorWorth[0] -= item.getDurability();
  87.             case CHAINMAIL_BOOTS:
  88.                 armorWorth[0] += 195;
  89.                 armorWorth[0] -= item.getDurability();
  90.  
  91.                 armorWorth[0] += 300;
  92.                 break;
  93.  
  94.             case GOLD_HELMET:
  95.                 armorWorth[0] += 77;
  96.                 armorWorth[0] -= item.getDurability();
  97.             case GOLD_CHESTPLATE:
  98.                 armorWorth[0] += 112;
  99.                 armorWorth[0] -= item.getDurability();
  100.             case GOLD_LEGGINGS:
  101.                 armorWorth[0] += 105;
  102.                 armorWorth[0] -= item.getDurability();
  103.             case GOLD_BOOTS:
  104.                 armorWorth[0] += 91;
  105.                 armorWorth[0] -= item.getDurability();
  106.  
  107.                 armorWorth[0] += 200;
  108.                 break;
  109.  
  110.             case LEATHER_HELMET:
  111.                 armorWorth[0] += 55;
  112.                 armorWorth[0] -= item.getDurability();
  113.             case LEATHER_CHESTPLATE:
  114.                 armorWorth[0] += 80;
  115.                 armorWorth[0] -= item.getDurability();
  116.             case LEATHER_LEGGINGS:
  117.                 armorWorth[0] += 75;
  118.                 armorWorth[0] -= item.getDurability();
  119.             case LEATHER_BOOTS:
  120.                 armorWorth[0] += 65;
  121.                 armorWorth[0] -= item.getDurability();
  122.  
  123.                 armorWorth[0] += 100;
  124.                 break;
  125.  
  126.             default:
  127.                 break;
  128.         }
  129.  
  130.         final Map<Enchantment, Integer> enchantments = item.getItemMeta().getEnchants();
  131.         final Set<Enchantment> enchantmentKeys = enchantments.keySet();
  132.  
  133.         enchantmentKeys.forEach(enchantment -> {
  134.  
  135.             if (enchantment.equals(Enchantment.DURABILITY)) {
  136.                 final int enchLevel = enchantments.get(Enchantment.DURABILITY);
  137.                 armorWorth[0] += enchLevel * 5;
  138.             } else if (enchantment.equals(Enchantment.PROTECTION_ENVIRONMENTAL)) {
  139.                 final int enchLevel = enchantments.get(Enchantment.PROTECTION_ENVIRONMENTAL);
  140.                 armorWorth[0] += enchLevel * 5 * 5;
  141.             } else if (enchantment.equals(Enchantment.PROTECTION_FIRE)) {
  142.                 final int enchLevel = enchantments.get(Enchantment.PROTECTION_FIRE);
  143.                 armorWorth[0] += enchLevel * 3 * 5;
  144.             } else if (enchantment.equals(Enchantment.PROTECTION_PROJECTILE)) {
  145.                 final int enchLevel = enchantments.get(Enchantment.PROTECTION_PROJECTILE);
  146.                 armorWorth[0] += enchLevel * 4 * 5;
  147.             } else if (enchantment.equals(Enchantment.PROTECTION_EXPLOSIONS)) {
  148.                 final int enchLevel = enchantments.get(Enchantment.PROTECTION_EXPLOSIONS);
  149.                 armorWorth[0] += enchLevel * 2 * 5;
  150.             } else if (enchantment.equals(Enchantment.THORNS)) {
  151.                 final int enchLevel = enchantments.get(Enchantment.THORNS);
  152.                 armorWorth[0] += enchLevel * 7 * 5;
  153.             } else if (enchantment.equals(Enchantment.OXYGEN)) {
  154.                 final int enchLevel = enchantments.get(Enchantment.OXYGEN);
  155.                 armorWorth[0] += enchLevel * 5;
  156.             } else if (enchantment.equals(Enchantment.WATER_WORKER)) {
  157.                 final int enchLevel = enchantments.get(Enchantment.WATER_WORKER);
  158.                 armorWorth[0] += enchLevel * 5;
  159.             } else if (enchantment.equals(Enchantment.PROTECTION_FALL)) {
  160.                 final int enchLevel = enchantments.get(Enchantment.PROTECTION_FALL);
  161.                 armorWorth[0] += enchLevel * 3 * 5;
  162.             } else if (enchantment.equals(Enchantment.DEPTH_STRIDER)) {
  163.                 final int enchLevel = enchantments.get(Enchantment.DEPTH_STRIDER);
  164.                 armorWorth[0] += enchLevel * 2 * 5;
  165.             }
  166.         });
  167.  
  168.         return armorWorth[0];
  169.     }
  170.  
  171.     public void autoEquip(final Player player) {
  172.         final PlayerInventory playerInventory = player.getInventory();
  173.         final ItemStack[] inventoryContents = playerInventory.getContents();
  174.  
  175.         for (int i = 0; i < inventoryContents.length; i++) {
  176.             final ItemStack item = inventoryContents[i];
  177.  
  178.             if (item == null)
  179.                 continue;
  180.  
  181.             final ItemStack helmet = playerInventory.getHelmet(),
  182.                     chestplate = playerInventory.getChestplate(),
  183.                     leggings = playerInventory.getLeggings(),
  184.                     boots = playerInventory.getBoots();
  185.  
  186.             if (!this.isArmor(item.getType()))
  187.                 continue;
  188.  
  189.             switch (item.getType()) {
  190.                 case DIAMOND_HELMET:
  191.                 case IRON_HELMET:
  192.                 case CHAINMAIL_HELMET:
  193.                 case GOLD_HELMET:
  194.                 case LEATHER_HELMET:
  195.                     if (this.getArmorWorth(item) < (helmet == null ? 0 : this.getArmorWorth(helmet)))
  196.                         break;
  197.  
  198.                     inventoryContents[i] = helmet;
  199.                     playerInventory.setHelmet(item);
  200.                     break;
  201.  
  202.                 case DIAMOND_CHESTPLATE:
  203.                 case IRON_CHESTPLATE:
  204.                 case CHAINMAIL_CHESTPLATE:
  205.                 case GOLD_CHESTPLATE:
  206.                 case LEATHER_CHESTPLATE:
  207.                     if (this.getArmorWorth(item) < (chestplate == null ? 0 : this.getArmorWorth(chestplate)))
  208.                         break;
  209.  
  210.                     inventoryContents[i] = chestplate;
  211.                     playerInventory.setChestplate(item);
  212.                     break;
  213.  
  214.                 case DIAMOND_LEGGINGS:
  215.                 case IRON_LEGGINGS:
  216.                 case CHAINMAIL_LEGGINGS:
  217.                 case GOLD_LEGGINGS:
  218.                 case LEATHER_LEGGINGS:
  219.                     if (this.getArmorWorth(item) < (leggings == null ? 0 : this.getArmorWorth(leggings)))
  220.                         break;
  221.  
  222.                     inventoryContents[i] = leggings;
  223.                     playerInventory.setLeggings(item);
  224.                     break;
  225.  
  226.                 case DIAMOND_BOOTS:
  227.                 case IRON_BOOTS:
  228.                 case CHAINMAIL_BOOTS:
  229.                 case GOLD_BOOTS:
  230.                 case LEATHER_BOOTS:
  231.                     if (this.getArmorWorth(item) < (boots == null ? 0 : this.getArmorWorth(boots)))
  232.                         break;
  233.  
  234.                     inventoryContents[i] = boots;
  235.                     playerInventory.setBoots(item);
  236.                     break;
  237.             }
  238.         }
  239.  
  240.         playerInventory.setContents(inventoryContents);
  241.         player.updateInventory();
  242.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement