package nl.sugcube.crystalquest.sba; import org.bukkit.enchantments.Enchantment; /** * @author SugarCaney */ public final class SEnch { private static final Enchantment[] ENCHANTMENTS = Enchantment.values(); /** * Get the enchantment that has the given name. * * @param trivialName * The name of the enchantment as seen in-game. * @return The material that corresponds to the given name or {@code null} when the enchantment * could not be found. */ public static Enchantment toEnchantment(String trivialName) { switch (trivialName.toLowerCase().replace("_", "")) { case "protection": return Enchantment.PROTECTION_ENVIRONMENTAL; case "fireprotection": return Enchantment.PROTECTION_FIRE; case "featherfalling": return Enchantment.PROTECTION_FALL; case "blastprotection": return Enchantment.PROTECTION_EXPLOSIONS; case "projectileprotection": return Enchantment.PROTECTION_PROJECTILE; case "respiration": return Enchantment.OXYGEN; case "aquaaffinity": return Enchantment.WATER_WORKER; case "thorns": return Enchantment.THORNS; case "depthstrider": return Enchantment.DEPTH_STRIDER; case "frostwalker": return Enchantment.FROST_WALKER; case "bindingcurse": return Enchantment.BINDING_CURSE; case "sharpness": return Enchantment.DAMAGE_ALL; case "smite": return Enchantment.DAMAGE_UNDEAD; case "baneofarthropods": return Enchantment.DAMAGE_ARTHROPODS; case "knockback": return Enchantment.KNOCKBACK; case "fireaspect": return Enchantment.FIRE_ASPECT; case "looting": return Enchantment.LOOT_BONUS_MOBS; case "sweeping": return Enchantment.SWEEPING_EDGE; case "efficiency": return Enchantment.DIG_SPEED; case "silktouch": return Enchantment.SILK_TOUCH; case "unbreaking": return Enchantment.DURABILITY; case "fortune": return Enchantment.LOOT_BONUS_BLOCKS; case "power": return Enchantment.ARROW_DAMAGE; case "punch": return Enchantment.ARROW_KNOCKBACK; case "flame": return Enchantment.ARROW_FIRE; case "infinity": return Enchantment.ARROW_INFINITE; case "lure": return Enchantment.LURE; case "luckofthesea": return Enchantment.LUCK; case "mending": return Enchantment.MENDING; case "vanishing_curse": return Enchantment.VANISHING_CURSE; default: return null; } } public static Enchantment toEnchantment(int enchantmentId) { switch (enchantmentId) { case 0: return Enchantment.PROTECTION_ENVIRONMENTAL; case 1: return Enchantment.PROTECTION_FIRE; case 2: return Enchantment.PROTECTION_FALL; case 3: return Enchantment.PROTECTION_EXPLOSIONS; case 4: return Enchantment.PROTECTION_PROJECTILE; case 5: return Enchantment.OXYGEN; case 6: return Enchantment.WATER_WORKER; case 7: return Enchantment.THORNS; case 8: return Enchantment.DEPTH_STRIDER; case 9: return Enchantment.FROST_WALKER; case 10: return Enchantment.BINDING_CURSE; case 16: return Enchantment.DAMAGE_ALL; case 17: return Enchantment.DAMAGE_UNDEAD; case 18: return Enchantment.DAMAGE_ARTHROPODS; case 19: return Enchantment.KNOCKBACK; case 20: return Enchantment.FIRE_ASPECT; case 21: return Enchantment.LOOT_BONUS_MOBS; case 22: return Enchantment.SWEEPING_EDGE; case 32: return Enchantment.DIG_SPEED; case 33: return Enchantment.SILK_TOUCH; case 34: return Enchantment.DURABILITY; case 35: return Enchantment.LOOT_BONUS_BLOCKS; case 48: return Enchantment.ARROW_DAMAGE; case 49: return Enchantment.ARROW_KNOCKBACK; case 50: return Enchantment.ARROW_FIRE; case 51: return Enchantment.ARROW_INFINITE; case 61: return Enchantment.LUCK; case 62: return Enchantment.LURE; case 70: return Enchantment.MENDING; case 71: return Enchantment.VANISHING_CURSE; default: return null; } } private SEnch() { throw new AssertionError("Noop"); } }