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}