package com.austinv11.collectiveframework.minecraft.utils;
import com.austinv11.collectiveframework.utils.ArrayUtils;
/**
* Enum class for minecraft color codes
*/
public enum Colors {
BLACK("0"),
DARK_BLUE("1"),
DARK_GREEN("2"),
DARK_AQUA("3"),
DARK_RED("4"),
DARK_PURPLE("5"),
GOLD("6"),
GRAY("7"),
DARK_GRAY("8"),
BLUE("9"),
GREEN("a"),
AQUA("b"),
RED("c"),
LIGHT_PURPLE("d"),
YELLOW("e"),
WHITE("f"),
MAGIC("k"),
BOLD("l"),
STRIKETHROUGH("m"),
UNDERLINE("n"),
ITALIC("o"),
RESET("r");
public String code;
public static final char[] COLOR_CHARS = new char[]{'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','k','l','m','n','o','r'};
public static final char COLOR_CODE_CHAR = '\u00a7';
Colors(String code) {
this.code = code;
}
@Override
public String toString() {
return COLOR_CODE_CHAR+code;
}
/**
* Replaces the specified character with the real color character in a string (if it returns a valid color)
* @param colorChar The alternate color character
* @param string The string
* @return The modified string
*/
public static String replaceAlternateColorChar(char colorChar, String string) {
char[] stringCharArray = string.toCharArray();
for (int i = 0; i < stringCharArray.length; i++) {
char c = stringCharArray[i];
if (c == colorChar)
if (stringCharArray.length > i+1) {
int index = ArrayUtils.indexOf(COLOR_CHARS, stringCharArray[i+1]);
if (index != -1)
stringCharArray[i] = COLOR_CODE_CHAR;
}
}
return String.valueOf(stringCharArray);
}
/**
* Replaces '&' with the real color character in a string (if it returns a valid color)
* Used to simplify coremodding essentials color codes into the default FontRenderer
* @param string The string
* @return The modified string
*/
public static String replaceAlternateColorChar(String string) {
return replaceAlternateColorChar('&', string);
}
}