From ca4077b20424864aa58ab298bc38fddcd92ca320 Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Thu, 18 Aug 2022 13:29:12 -0400 Subject: [PATCH] Fix rgb color codes getting stripped in some cases (#5076) --- Essentials/build.gradle | 4 ++++ .../com/earth2me/essentials/utils/FormatUtil.java | 6 +++--- .../com/earth2me/essentials/utils/VersionUtil.java | 2 +- .../com/earth2me/essentials/utils/FormatUtilTest.java | 11 +++++++++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Essentials/build.gradle b/Essentials/build.gradle index f864f2c65..2a72af815 100644 --- a/Essentials/build.gradle +++ b/Essentials/build.gradle @@ -29,6 +29,10 @@ dependencies { } } +test { + testLogging.showStandardStreams = true +} + shadowJar { dependencies { include (dependency('io.papermc:paperlib')) diff --git a/Essentials/src/main/java/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/main/java/com/earth2me/essentials/utils/FormatUtil.java index 56ea126f1..41eb0c619 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/main/java/com/earth2me/essentials/utils/FormatUtil.java @@ -226,12 +226,12 @@ public final class FormatUtil { final EnumSet strip = EnumSet.complementOf(supported); final boolean rgb = user.isAuthorized(permBase + ".rgb"); - if (!supported.isEmpty() || rgb) { - message = replaceColor(message, supported, rgb); - } if (!strip.isEmpty()) { message = stripColor(message, strip); } + if (!supported.isEmpty() || rgb) { + message = replaceColor(message, supported, rgb); + } return message; } diff --git a/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java b/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java index 4eefd5f6e..a7b66c2d1 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java +++ b/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java @@ -192,7 +192,7 @@ public final class VersionUtil { if (!Bukkit.getName().equals("Essentials Fake Server")) { throw new IllegalArgumentException(string + " is not in valid version format. e.g. 1.8.8-R0.1"); } - matcher = VERSION_PATTERN.matcher(v1_14_R01.toString()); + matcher = VERSION_PATTERN.matcher(v1_16_1_R01.toString()); Preconditions.checkArgument(matcher.matches(), string + " is not in valid version format. e.g. 1.8.8-R0.1"); } diff --git a/Essentials/src/test/java/com/earth2me/essentials/utils/FormatUtilTest.java b/Essentials/src/test/java/com/earth2me/essentials/utils/FormatUtilTest.java index 8c2c27580..7983bdb71 100644 --- a/Essentials/src/test/java/com/earth2me/essentials/utils/FormatUtilTest.java +++ b/Essentials/src/test/java/com/earth2me/essentials/utils/FormatUtilTest.java @@ -18,6 +18,17 @@ public class FormatUtilTest { checkFormatPerms("§aT§Aest", "§aT§Aest", "color"); } + @Test + public void testFormatHexColors() { + checkFormatPerms("&#ffffff", "&#ffffff"); + checkFormatPerms("&#ffffff", "§x§f§f§f§f§f§f", "color", "rgb"); + checkFormatPerms("&#ff0000test", "§x§f§f§0§0§0§0test", "rgb"); + checkFormatPerms("&#ff0000test", "§x§f§f§0§0§0§0test", "rgb", "color"); + checkFormatPerms("&#ff0000test", "§x§f§f§0§0§0§0test", "rgb", "white"); + checkFormatPerms("&#ff0000test", "§x§f§f§0§0§0§0test", "rgb", "black"); + checkFormatPerms("&#ff0000test", "§x§f§f§0§0§0§0test", "rgb", "black", "white"); + } + @Test public void testFormatCategoryPerms() { checkFormatPerms("Test", "Test");