Fix HEX color parsing - normalize to lowercase - Added normalizeMiniMessageHex to convert existing <#RRGGBB> tags to lowercase - convertHexColors now outputs lowercase hex codes - Added send/getComponent methods to MessageConfig

This commit is contained in:
loki5512344 2025-12-30 22:01:48 +01:00
parent d2c45b3f0c
commit f4752000c8
2 changed files with 51 additions and 4 deletions

View file

@ -39,15 +39,32 @@ public class ChatFormatter {
// 2. Конвертируем §коды -> &коды (для унификации)
result = convertSectionToAmpersand(result);
// 3. Конвертируем &#RRGGBB -> <#RRGGBB> (только если еще не в MiniMessage формате)
// 3. Нормализуем существующие MiniMessage HEX теги в lowercase
result = normalizeMiniMessageHex(result);
// 4. Конвертируем &#RRGGBB -> <#RRGGBB> (только если еще не в MiniMessage формате)
result = convertHexColors(result);
// 4. Конвертируем &коды -> MiniMessage теги
// 5. Конвертируем &коды -> MiniMessage теги
result = convertLegacyColors(result);
return result;
}
/**
* Нормализует существующие MiniMessage HEX теги в lowercase
*/
public static String normalizeMiniMessageHex(String message) {
if (message == null) return "";
Matcher matcher = MINIMESSAGE_HEX_PATTERN.matcher(message);
StringBuilder result = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(result, "<#" + matcher.group(1).toLowerCase() + ">");
}
matcher.appendTail(result);
return result.toString();
}
/**
* Конвертирует §x§R§R§G§G§B§B в <#RRGGBB>
*/
@ -83,7 +100,7 @@ public class ChatFormatter {
Matcher matcher = HEX_PATTERN.matcher(result);
StringBuilder sb = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(sb, "<#" + matcher.group(1) + ">");
matcher.appendReplacement(sb, "<#" + matcher.group(1).toLowerCase() + ">");
}
matcher.appendTail(sb);
result = sb.toString();
@ -92,7 +109,7 @@ public class ChatFormatter {
matcher = HEX_PATTERN_NO_AMPERSAND.matcher(result);
sb = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(sb, "<#" + matcher.group(1) + ">");
matcher.appendReplacement(sb, "<#" + matcher.group(1).toLowerCase() + ">");
}
matcher.appendTail(sb);
return sb.toString();