001package fr.aumgn.dac2.commands.arg;
002
003import fr.aumgn.bukkitutils.command.arg.impl.AbstractCommandArg;
004import fr.aumgn.dac2.DAC;
005import fr.aumgn.dac2.config.Color;
006import fr.aumgn.dac2.exceptions.DACException;
007
008public class ColorArg extends AbstractCommandArg<Color> {
009
010    public static class NotAColor extends DACException {
011
012        private static final long serialVersionUID = 9107450200980690121L;
013
014        public NotAColor(DAC dac, String token) {
015            super(dac.getCmdMessages().get("color.arg.notacolor", token));
016        }
017    }
018
019    private final DAC dac;
020
021    public ColorArg(DAC dac, String string) {
022        super(string);
023        this.dac = dac;
024    }
025
026    @Override
027    public Color value() {
028        Color color = dac.getColors().get(string);
029        if (color == null) {
030            throw new NotAColor(dac, string);
031        }
032
033        return color;
034    }
035}