Fix MiniMessage HEX format - use <color:#rrggbb> instead of <#rrggbb>
This commit is contained in:
parent
f4752000c8
commit
8824ccd60f
1 changed files with 10 additions and 10 deletions
|
|
@ -52,21 +52,21 @@ public class ChatFormatter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Нормализует существующие MiniMessage HEX теги в lowercase
|
* Нормализует существующие MiniMessage HEX теги в формат <color:#rrggbb>
|
||||||
*/
|
*/
|
||||||
public static String normalizeMiniMessageHex(String message) {
|
public static String normalizeMiniMessageHex(String message) {
|
||||||
if (message == null) return "";
|
if (message == null) return "";
|
||||||
Matcher matcher = MINIMESSAGE_HEX_PATTERN.matcher(message);
|
Matcher matcher = MINIMESSAGE_HEX_PATTERN.matcher(message);
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
matcher.appendReplacement(result, "<#" + matcher.group(1).toLowerCase() + ">");
|
matcher.appendReplacement(result, "<color:#" + matcher.group(1).toLowerCase() + ">");
|
||||||
}
|
}
|
||||||
matcher.appendTail(result);
|
matcher.appendTail(result);
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Конвертирует §x§R§R§G§G§B§B в <#RRGGBB>
|
* Конвертирует §x§R§R§G§G§B§B в <color:#RRGGBB>
|
||||||
*/
|
*/
|
||||||
public static String convertSectionHexColors(String message) {
|
public static String convertSectionHexColors(String message) {
|
||||||
if (message == null) return "";
|
if (message == null) return "";
|
||||||
|
|
@ -75,8 +75,8 @@ public class ChatFormatter {
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
String match = matcher.group();
|
String match = matcher.group();
|
||||||
// §x§R§R§G§G§B§B -> RRGGBB
|
// §x§R§R§G§G§B§B -> RRGGBB
|
||||||
String hex = match.replace("§x", "").replace("§", "");
|
String hex = match.replace("§x", "").replace("§", "").toLowerCase();
|
||||||
matcher.appendReplacement(result, "<#" + hex + ">");
|
matcher.appendReplacement(result, "<color:#" + hex + ">");
|
||||||
}
|
}
|
||||||
matcher.appendTail(result);
|
matcher.appendTail(result);
|
||||||
return result.toString();
|
return result.toString();
|
||||||
|
|
@ -91,25 +91,25 @@ public class ChatFormatter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Конвертирует &#RRGGBB и #RRGGBB в MiniMessage формат <#RRGGBB>
|
* Конвертирует &#RRGGBB и #RRGGBB в MiniMessage формат <color:#RRGGBB>
|
||||||
*/
|
*/
|
||||||
public static String convertHexColors(String message) {
|
public static String convertHexColors(String message) {
|
||||||
String result = message;
|
String result = message;
|
||||||
|
|
||||||
// Конвертируем &#RRGGBB
|
// Конвертируем &#RRGGBB -> <color:#rrggbb>
|
||||||
Matcher matcher = HEX_PATTERN.matcher(result);
|
Matcher matcher = HEX_PATTERN.matcher(result);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
matcher.appendReplacement(sb, "<#" + matcher.group(1).toLowerCase() + ">");
|
matcher.appendReplacement(sb, "<color:#" + matcher.group(1).toLowerCase() + ">");
|
||||||
}
|
}
|
||||||
matcher.appendTail(sb);
|
matcher.appendTail(sb);
|
||||||
result = sb.toString();
|
result = sb.toString();
|
||||||
|
|
||||||
// Конвертируем #RRGGBB (без &, но не если это часть &#RRGGBB)
|
// Конвертируем #RRGGBB (без &, но не если это часть &#RRGGBB или <color:#)
|
||||||
matcher = HEX_PATTERN_NO_AMPERSAND.matcher(result);
|
matcher = HEX_PATTERN_NO_AMPERSAND.matcher(result);
|
||||||
sb = new StringBuilder();
|
sb = new StringBuilder();
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
matcher.appendReplacement(sb, "<#" + matcher.group(1).toLowerCase() + ">");
|
matcher.appendReplacement(sb, "<color:#" + matcher.group(1).toLowerCase() + ">");
|
||||||
}
|
}
|
||||||
matcher.appendTail(sb);
|
matcher.appendTail(sb);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue