diff --git a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/Html.java b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/Html.java index 48be23edb..1c66086da 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/Html.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/Html.java @@ -96,6 +96,8 @@ public enum Html { }; Map colorMap = new HashMap<>(); + String splitWith = string.contains("§") ? "§" : "§"; + for (Html html : replacer) { colorMap.put(Character.toLowerCase(html.name().charAt(6)), html.parse()); colorMap.put('k', ""); @@ -106,9 +108,9 @@ public enum Html { } StringBuilder result = new StringBuilder(string.length()); - String[] split = string.split("§"); + String[] split = string.split(splitWith); // Skip first part if it does not start with § - boolean skipFirst = !string.startsWith("§"); + boolean skipFirst = !string.startsWith(splitWith); int placedSpans = 0; for (String part : split) { diff --git a/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/HtmlTest.java b/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/HtmlTest.java index 2bdbb2e09..d2c8a396f 100644 --- a/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/HtmlTest.java +++ b/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/HtmlTest.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan.utilities.html; +import org.apache.commons.text.StringEscapeUtils; import org.junit.jupiter.api.Test; import org.junit.platform.runner.JUnitPlatform; import org.junit.runner.RunWith; @@ -54,6 +55,14 @@ class HtmlTest { assertEquals(expected, result); } + @Test + void colorsToSpanSwapsEscapedHtmlColors() { + String testString = "§fHello, §aPerson§r - How Are you?"; + String expected = Html.COLOR_F.parse() + "Hello, " + Html.COLOR_A.parse() + "Person - How Are you?"; + String result = Html.swapColorCodesToSpan(StringEscapeUtils.escapeHtml4(testString)); + assertEquals(expected, result); + } + @Test void swapColorCodesDoesNotReplaceNonColors() { String testString = "1test§2yes";