Added CMI hex code support

This commit is contained in:
Auxilor
2021-03-21 16:21:50 +00:00
parent 6697cc412e
commit 786cbbcd7d

View File

@@ -30,6 +30,11 @@ public class StringUtils {
*/
private static final Pattern HEX_PATTERN = Pattern.compile("&#" + "([A-Fa-f0-9]{6})" + "");
/**
* Regex for hex codes.
*/
private static final Pattern ALT_HEX_PATTERN = Pattern.compile("\\{#" + "([A-Fa-f0-9]{6})" + "}");
/**
* Translate a string - converts Placeholders and Color codes.
*
@@ -61,7 +66,22 @@ public class StringUtils {
}
private static String translateHexColorCodes(@NotNull final String message) {
Matcher matcher = HEX_PATTERN.matcher(message);
String processedMessage = message;
for (HexParseMode parseMode : HexParseMode.values()) {
processedMessage = translateHexColorCodes(processedMessage, parseMode);
}
return processedMessage;
}
private static String translateHexColorCodes(@NotNull final String message,
@NotNull final HexParseMode mode) {
Matcher matcher;
if (mode == HexParseMode.CMI) {
matcher = ALT_HEX_PATTERN.matcher(message);
} else {
matcher = HEX_PATTERN.matcher(message);
}
StringBuffer buffer = new StringBuffer(message.length() + 4 * 8);
while (matcher.find()) {
String group = matcher.group(1);
@@ -201,4 +221,9 @@ public class StringUtils {
}
return string;
}
private enum HexParseMode {
CMI,
NORMAL
}
}