From 507dfcefc52d0f5ff7482a45fddb0be29d1c4a45 Mon Sep 17 00:00:00 2001 From: Jeff P Date: Sun, 22 Aug 2021 00:08:04 -0400 Subject: [PATCH] Add essentials RGB hex parsing --- .../src/main/java/org/dynmap/Client.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/DynmapCore/src/main/java/org/dynmap/Client.java b/DynmapCore/src/main/java/org/dynmap/Client.java index e48f06bf..902bf5bd 100644 --- a/DynmapCore/src/main/java/org/dynmap/Client.java +++ b/DynmapCore/src/main/java/org/dynmap/Client.java @@ -225,6 +225,26 @@ public class Client { spancnt++; break; } + else if (c == 'x') { // Essentials nickname hexcode format + if (i + 12 <= cnt){ // Check if string is at least long enough to be valid hexcode + if (s.charAt(i+1) == s.charAt(i+3) && + s.charAt(i+1) == s.charAt(i+5) && + s.charAt(i+1) == s.charAt(i+7) && + s.charAt(i+1) == s.charAt(i+9) && + s.charAt(i+1) == s.charAt(i+11) && // Check if there are enough \u00A7 in a row + s.charAt(i+1) == '\u00A7'){ + StringBuilder hex = new StringBuilder().append(s.charAt(i+2)) + .append(s.charAt(i+4)) + .append(s.charAt(i+6)) + .append(s.charAt(i+8)) + .append(s.charAt(i+10)) + .append(s.charAt(i+12)); // Build hexcode string + sb.append(""); // Substitute with hexcode + i = i + 12; //move past hex codes + } + } + break; + } } } else if (c == '&') { // Essentials color code?