aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index 4a72a85e..d77f3c9e 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -194,6 +194,28 @@ public class Utils {
return chromaString(str, 0, false);
}
+ private static final Pattern CHROMA_REPLACE_PATTERN = Pattern.compile("\u00a7z(.+?)(?=\u00a7|$)");
+
+ public static String chromaStringByColourCode(String str) {
+ if(str.contains("\u00a7z")) {
+ Matcher matcher = CHROMA_REPLACE_PATTERN.matcher(str);
+
+ StringBuffer sb = new StringBuffer();
+
+ while(matcher.find()) {
+ matcher.appendReplacement(sb,
+ Utils.chromaString(matcher.group(1))
+ .replace("\\", "\\\\")
+ .replace("$", "\\$")
+ );
+ }
+ matcher.appendTail(sb);
+
+ str = sb.toString();
+ }
+ return str;
+ }
+
private static long startTime = 0;
public static String chromaString(String str, float offset, boolean bold) {
str = cleanColour(str);