From 8ac304cc07e3d2d5c0a6ade6cc3e376fdb87fc52 Mon Sep 17 00:00:00 2001 From: loki5512344 Date: Thu, 1 Jan 2026 23:43:22 +0100 Subject: [PATCH] Fix &#RRGGBB color format support with lowercase normalization --- .../com/loki/lochat/utils/ChatFormatter.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/loki/lochat/utils/ChatFormatter.java b/src/main/java/com/loki/lochat/utils/ChatFormatter.java index 1632e7a..d7f9361 100644 --- a/src/main/java/com/loki/lochat/utils/ChatFormatter.java +++ b/src/main/java/com/loki/lochat/utils/ChatFormatter.java @@ -40,10 +40,26 @@ public final class ChatFormatter { if (message == null) return ""; // Конвертируем &#RRGGBB в <#RRGGBB> - message = message.replaceAll("&#([0-9a-fA-F]{6})", "<#$1>"); + java.util.regex.Pattern pattern1 = java.util.regex.Pattern.compile("&#([0-9a-fA-F]{6})"); + java.util.regex.Matcher matcher1 = pattern1.matcher(message); + StringBuffer sb1 = new StringBuffer(); + while (matcher1.find()) { + String hex = matcher1.group(1).toLowerCase(); + matcher1.appendReplacement(sb1, "<#" + hex + ">"); + } + matcher1.appendTail(sb1); + message = sb1.toString(); // Конвертируем #RRGGBB в <#RRGGBB> (только если не внутри тегов) - message = message.replaceAll("(?)", "<#$1>"); + java.util.regex.Pattern pattern2 = java.util.regex.Pattern.compile("(?)"); + java.util.regex.Matcher matcher2 = pattern2.matcher(message); + StringBuffer sb2 = new StringBuffer(); + while (matcher2.find()) { + String hex = matcher2.group(1).toLowerCase(); + matcher2.appendReplacement(sb2, "<#" + hex + ">"); + } + matcher2.appendTail(sb2); + message = sb2.toString(); // Конвертируем &[0-9a-fk-or] в соответствующие MiniMessage теги message = message.replaceAll("&0", "");