@@ -15,7 +15,8 @@ public class ColorAPI {
1515 private static final List <String > legacyColors = Arrays .asList ("&0" , "&1" , "&2" , "&3" , "&4" , "&5" , "&6" , "&7" , "&8" , "&9" , "&a" , "&b" , "&c" , "&d" , "&e" , "§0" , "§1" , "§2" , "§3" , "§4" , "§5" , "§6" , "§7" , "§8" , "§9" , "§a" , "§b" , "§c" , "§d" , "§e" );
1616 private static final List <String > specialChars = Arrays .asList ("&l" , "&n" , "&o" , "&k" , "&m" , "§l" , "§n" , "§o" , "§k" , "§m" );
1717 private static final Pattern patternNormal = Pattern .compile ("\\ {#([0-9A-Fa-f]{6})\\ }" );
18- private static final Pattern patternGrad = Pattern .compile ("\\ {/#([0-9A-Fa-f]{6})\\ }(.*?)\\ {/#([0-9A-Fa-f]{6})\\ }" );
18+ private static final Pattern patternGrad = Pattern .compile ("\\ {#([0-9A-Fa-f]{6})>\\ }(.*?)\\ {#([0-9A-Fa-f]{6})<\\ }" );
19+ private static final Pattern patternOneFromTwo = Pattern .compile ("\\ {#([0-9A-Fa-f]{6})<>\\ }" );
1920 private static Matcher matcher ;
2021
2122 /**
@@ -97,7 +98,8 @@ public static String removeLegacyColors(String input) {
9798 * @return string without patterns
9899 */
99100 public static String removePatterns (String input ) {
100- input = input .replaceAll ("\\ {/#([0-9A-Fa-f]{6})\\ }" , "" );
101+ input = input .replaceAll ("\\ {#([0-9A-Fa-f]{6})>\\ }" , "" );
102+ input = input .replaceAll ("\\ {#([0-9A-Fa-f]{6})<\\ }" , "" );
101103 input = input .replaceAll ("\\ {#([0-9A-Fa-f]{6})\\ }" , "" );
102104 return input ;
103105 }
@@ -125,7 +127,6 @@ public static String colorizeClassic(String input) {
125127 return input ;
126128 }
127129
128-
129130 /**
130131 *
131132 * Here we can call for gradient colorize
@@ -138,6 +139,16 @@ public static String colorizeClassic(String input) {
138139 * @return colored output with gradient
139140 */
140141 public static String colorizeGradient (String input ) {
142+ matcher = patternOneFromTwo .matcher (input );
143+
144+ StringBuffer output = new StringBuffer ();
145+
146+ while (matcher .find ()) {
147+ String text = matcher .group (1 );
148+ matcher .appendReplacement (output , "{#" + text + "<}{#" + text + ">}" );
149+ }
150+ input = String .valueOf (output );
151+
141152 matcher = patternGrad .matcher (input );
142153 while (matcher .find ()) {
143154 input = input .replace (matcher .group (), color (matcher .group (2 ), new Color (Integer .parseInt (matcher .group (1 ), 16 )), new Color (Integer .parseInt (matcher .group (3 ), 16 ))));
0 commit comments