From f182adc3bc8d42e453c670ff985d63085f9f5597 Mon Sep 17 00:00:00 2001 From: games647 Date: Fri, 24 Jun 2022 16:21:53 +0200 Subject: [PATCH] Add support for RGB colors using the color char Examples include: `&x00002a00002b&lText` --- .../fastlogin/bukkit/FastLoginBukkitTest.java | 27 +++++++++++++++++++ .../games647/fastlogin/core/CommonUtil.java | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 bukkit/src/test/java/com/github/games647/fastlogin/bukkit/FastLoginBukkitTest.java diff --git a/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/FastLoginBukkitTest.java b/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/FastLoginBukkitTest.java new file mode 100644 index 00000000..b874d097 --- /dev/null +++ b/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/FastLoginBukkitTest.java @@ -0,0 +1,27 @@ +package com.github.games647.fastlogin.bukkit; + +import com.github.games647.fastlogin.core.CommonUtil; + +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.chat.ComponentSerializer; + +import junit.framework.TestCase; +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class FastLoginBukkitTest extends TestCase { + + @Test + public void testRGB() { + var message = "&x00002a00002b&lText"; + var msg = CommonUtil.translateColorCodes(message); + assertThat(msg, is("§x00002a00002b§lText")); + + var components = TextComponent.fromLegacyText(msg); + var expected = """ + {"bold":true,"color":"#00a00b","text":"Text"}"""; + assertThat(ComponentSerializer.toString(components), is(expected)); + } +} diff --git a/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java b/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java index b368ac7b..ce6645b2 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java @@ -61,7 +61,7 @@ public class CommonUtil { public static String translateColorCodes(String rawMessage) { char[] chars = rawMessage.toCharArray(); for (int i = 0; i < chars.length - 1; i++) { - if (chars[i] == COLOR_CHAR && "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(chars[i + 1]) > -1) { + if (chars[i] == COLOR_CHAR && "x0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(chars[i + 1]) > -1) { chars[i] = TRANSLATED_CHAR; chars[i + 1] = Character.toLowerCase(chars[i + 1]); }