1414import org .intellij .lang .annotations .Subst ;
1515
1616import java .util .Arrays ;
17+ import java .util .regex .Pattern ;
1718
1819@ UtilityClass
1920public class CC {
@@ -43,7 +44,8 @@ public TextComponent color(String message) {
4344
4445 return Component .text ()
4546 .append (fixed )
46- .decorationIfAbsent (TextDecoration .ITALIC , hasItalic ? TextDecoration .State .TRUE : TextDecoration .State .FALSE )
47+ .decorationIfAbsent (TextDecoration .ITALIC ,
48+ hasItalic ? TextDecoration .State .TRUE : TextDecoration .State .FALSE )
4749 .build ();
4850 }
4951
@@ -71,7 +73,10 @@ private String convertLegacyToMiniMessage(String text) {
7173 .replace ("&m" , "<strikethrough>" )
7274 .replace ("&k" , "<obfuscated>" )
7375 .replace ("&r" , "<reset>" );
74-
76+ Pattern LEGACY_HEX = Pattern .compile (
77+ "[§&]x[§&]([0-9a-f])[§&]([0-9a-f])[§&]([0-9a-f])[§&]([0-9a-f])[§&]([0-9a-f])[§&]([0-9a-f])" , Pattern .CASE_INSENSITIVE );
78+ text = LEGACY_HEX .matcher (text )
79+ .replaceAll ("<#$1$2$3$4$5$6>" );
7580 return text .replaceAll ("(?i)&#([a-f0-9]{6})" , "<#$1>" );
7681 }
7782
@@ -81,14 +86,13 @@ public Component returnMessage(Player player, String message, Replacement... rep
8186 TagResolver resolver = TagResolver .resolver (
8287 Arrays .stream (replacements )
8388 .map (replacement -> {
84- @ Subst ("" ) String key = replacement .getPlaceholder ().replaceAll ("^<|>$" , "" ).toLowerCase ();
89+ @ Subst ("" )
90+ String key = replacement .getPlaceholder ().replaceAll ("^<|>$" , "" ).toLowerCase ();
8591 return TagResolver .resolver (
8692 key ,
87- Placeholder .component (key , replacement .getReplacement ()).tag ()
88- );
93+ Placeholder .component (key , replacement .getReplacement ()).tag ());
8994 })
90- .toArray (TagResolver []::new )
91- );
95+ .toArray (TagResolver []::new ));
9296 return PlaceholderUtil .format (MiniMessage .miniMessage ().deserialize (miniMessageInput , resolver ), player );
9397 }
9498}
0 commit comments