EnchantmentUtils.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.gmail.nossr50.util;
  2. import org.bukkit.enchantments.Enchantment;
  3. import java.util.HashMap;
  4. public class EnchantmentUtils {
  5. private static final HashMap<String, Enchantment> enchants = new HashMap<>();
  6. static {
  7. enchants.put("SHARPNESS", Enchantment.DAMAGE_ALL);
  8. enchants.put("POWER", Enchantment.ARROW_DAMAGE);
  9. enchants.put("FIRE_PROTECTION", Enchantment.PROTECTION_FIRE);
  10. enchants.put("FEATHER_FALLING", Enchantment.PROTECTION_FALL);
  11. enchants.put("PROTECTION", Enchantment.PROTECTION_ENVIRONMENTAL);
  12. enchants.put("BLAST_PROTECTION", Enchantment.PROTECTION_EXPLOSIONS);
  13. enchants.put("PROJECTILE_PROTECTION", Enchantment.PROTECTION_PROJECTILE);
  14. enchants.put("RESPIRATION", Enchantment.OXYGEN);
  15. enchants.put("INFINITY", Enchantment.ARROW_INFINITE);
  16. enchants.put("AQUA_AFFINITY", Enchantment.WATER_WORKER);
  17. enchants.put("UNBREAKING", Enchantment.DURABILITY);
  18. enchants.put("SMITE", Enchantment.DAMAGE_UNDEAD);
  19. enchants.put("BANE_OF_ARTHROPODS", Enchantment.DAMAGE_ARTHROPODS);
  20. enchants.put("EFFICIENCY", Enchantment.DIG_SPEED);
  21. enchants.put("FIRE_ASPECT", Enchantment.FIRE_ASPECT);
  22. enchants.put("SILK_TOUCH", Enchantment.SILK_TOUCH);
  23. enchants.put("FORTUNE", Enchantment.LOOT_BONUS_BLOCKS);
  24. enchants.put("LOOTING", Enchantment.LOOT_BONUS_MOBS);
  25. enchants.put("PUNCH", Enchantment.ARROW_KNOCKBACK);
  26. enchants.put("FLAME", Enchantment.ARROW_FIRE);
  27. enchants.put("KNOCKBACK", Enchantment.KNOCKBACK);
  28. enchants.put("THORNS", Enchantment.THORNS);
  29. enchants.put("MENDING", Enchantment.MENDING);
  30. enchants.put("DEPTH_STRIDER", Enchantment.DEPTH_STRIDER);
  31. enchants.put("FROST_WALKER", Enchantment.FROST_WALKER);
  32. }
  33. /**
  34. * Method to get an {@link Enchantment} using it's Vanilla Minecraft name or Bukkit enum name
  35. *
  36. * @param enchantmentName Vanilla or Bukkit name of enchantment
  37. * @return Enchantment or null if no enchantment was found
  38. */
  39. public static Enchantment getByName(String enchantmentName) {
  40. if (enchants.containsKey(enchantmentName)) {
  41. return enchants.get(enchantmentName);
  42. }
  43. return Enchantment.getByName(enchantmentName);
  44. }
  45. }