package net.minecraft.server; import com.google.common.collect.Lists; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.annotation.Nullable; public enum EnumChatFormat { BLACK("BLACK", '0', 0, 0), DARK_BLUE("DARK_BLUE", '1', 1, 170), DARK_GREEN("DARK_GREEN", '2', 2, 43520), DARK_AQUA("DARK_AQUA", '3', 3, 43690), DARK_RED("DARK_RED", '4', 4, 11141120), DARK_PURPLE("DARK_PURPLE", '5', 5, 11141290), GOLD("GOLD", '6', 6, 16755200), GRAY("GRAY", '7', 7, 11184810), DARK_GRAY("DARK_GRAY", '8', 8, 5592405), BLUE("BLUE", '9', 9, 5592575), GREEN("GREEN", 'a', 10, 5635925), AQUA("AQUA", 'b', 11, 5636095), RED("RED", 'c', 12, 16733525), LIGHT_PURPLE("LIGHT_PURPLE", 'd', 13, 16733695), YELLOW("YELLOW", 'e', 14, 16777045), WHITE("WHITE", 'f', 15, 16777215), OBFUSCATED("OBFUSCATED", 'k', true), BOLD("BOLD", 'l', true), STRIKETHROUGH("STRIKETHROUGH", 'm', true), UNDERLINE("UNDERLINE", 'n', true), ITALIC("ITALIC", 'o', true), RESET("RESET", 'r', -1, (Integer) null); private static final Map<String, EnumChatFormat> w = (Map) Arrays.stream(values()).collect(Collectors.toMap((enumchatformat) -> { return d(enumchatformat.y); }, (enumchatformat) -> { return enumchatformat; })); private static final Pattern x = Pattern.compile("(?i)\u00a7[0-9A-FK-OR]"); private final String y; public final char character; private final boolean A; private final String B; private final int C; @Nullable private final Integer D; private static String d(String s) { return s.toLowerCase(Locale.ROOT).replaceAll("[^a-z]", ""); } private EnumChatFormat(String s, char c0, int i, Integer integer) { this(s, c0, false, i, integer); } private EnumChatFormat(String s, char c0, boolean flag) { this(s, c0, flag, -1, (Integer) null); } private EnumChatFormat(String s, char c0, boolean flag, int i, Integer integer) { this.y = s; this.character = c0; this.A = flag; this.C = i; this.D = integer; this.B = "\u00a7" + c0; } public int b() { return this.C; } public boolean isFormat() { return this.A; } public boolean d() { return !this.A && this != EnumChatFormat.RESET; } public String g() { return this.name().toLowerCase(Locale.ROOT); } public String toString() { return this.B; } @Nullable public static String b(@Nullable String s) { return s == null ? null : EnumChatFormat.x.matcher(s).replaceAll(""); } @Nullable public static EnumChatFormat c(@Nullable String s) { return s == null ? null : (EnumChatFormat) EnumChatFormat.w.get(d(s)); } @Nullable public static EnumChatFormat a(int i) { if (i < 0) { return EnumChatFormat.RESET; } else { EnumChatFormat[] aenumchatformat = values(); int j = aenumchatformat.length; for (int k = 0; k < j; ++k) { EnumChatFormat enumchatformat = aenumchatformat[k]; if (enumchatformat.b() == i) { return enumchatformat; } } return null; } } public static Collection<String> a(boolean flag, boolean flag1) { List<String> list = Lists.newArrayList(); EnumChatFormat[] aenumchatformat = values(); int i = aenumchatformat.length; for (int j = 0; j < i; ++j) { EnumChatFormat enumchatformat = aenumchatformat[j]; if ((!enumchatformat.d() || flag) && (!enumchatformat.isFormat() || flag1)) { list.add(enumchatformat.g()); } } return list; } }