001package fr.aumgn.bukkitutils.command.arg.bukkit; 002 003import org.bukkit.enchantments.Enchantment; 004 005import fr.aumgn.bukkitutils.command.CommandsMessages; 006import fr.aumgn.bukkitutils.command.arg.impl.AbstractCommandArg; 007import fr.aumgn.bukkitutils.command.exception.CommandError; 008 009public class EnchantmentArg extends AbstractCommandArg<Enchantment> { 010 011 public static class NoSuchEnchantment extends CommandError { 012 013 private static final long serialVersionUID = -4832133406864970323L; 014 015 public NoSuchEnchantment(CommandsMessages messages, String name) { 016 super(messages.noSuchEnchant(name)); 017 } 018 } 019 020 private final CommandsMessages messages; 021 022 public EnchantmentArg(CommandsMessages messages, String string) { 023 super(string); 024 this.messages = messages; 025 } 026 027 @Override 028 public Enchantment value() { 029 String name = string; 030 Enchantment enchant = Enchantment.getByName(name.toUpperCase()); 031 if(enchant == null) { 032 throw new NoSuchEnchantment(messages, name); 033 } 034 035 return enchant; 036 } 037}