001package fr.aumgn.bukkitutils.command.arg.bukkit;
002
003import org.bukkit.ChatColor;
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 ChatColorArg extends AbstractCommandArg<ChatColor> {
010
011    public static class NoSuchColor extends CommandError {
012
013        private static final long serialVersionUID = 2534023126371443961L;
014
015        public NoSuchColor(CommandsMessages messages, String name) {
016            super(messages.noSuchColor(name));
017        }
018    }
019
020    private final CommandsMessages messages;
021
022    public ChatColorArg(CommandsMessages messages, String string) {
023        super(string);
024        this.messages = messages;
025    }
026
027    @Override
028    public ChatColor value() {
029        try {
030            return ChatColor.valueOf(string.toUpperCase());
031        } catch (IllegalArgumentException exc) {
032            throw new NoSuchColor(messages, string);
033        }
034    }
035}