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}