From a60c55007a89a7cd7c0efa9592919e189ca555dd Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Mon, 17 Sep 2018 16:11:23 -0400 Subject: [PATCH] Remove LegacyChatColorUtils In most cases, you should only work with legacy text to deserialize or serialize it for backwards compatibility or user configurations only. --- .../api/util/LegacyChatColorUtils.java | 66 ------------------- .../api/util/LegacyChatColorUtilsTest.java | 62 ----------------- .../proxy/config/VelocityConfiguration.java | 2 - 3 files changed, 130 deletions(-) delete mode 100644 api/src/main/java/com/velocitypowered/api/util/LegacyChatColorUtils.java delete mode 100644 api/src/test/java/com/velocitypowered/api/util/LegacyChatColorUtilsTest.java diff --git a/api/src/main/java/com/velocitypowered/api/util/LegacyChatColorUtils.java b/api/src/main/java/com/velocitypowered/api/util/LegacyChatColorUtils.java deleted file mode 100644 index a21b97ffd..000000000 --- a/api/src/main/java/com/velocitypowered/api/util/LegacyChatColorUtils.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.velocitypowered.api.util; - -import com.google.common.base.Preconditions; -import org.checkerframework.checker.nullness.qual.NonNull; - -import java.util.regex.Pattern; - -/** - * LegacyChatColorUtils contains utilities for handling legacy Minecraft color codes. Generally, you should prefer - * JSON-based components, but for convenience Velocity provides a limited set of tools to handle Minecraft color codes. - */ -public class LegacyChatColorUtils { - private LegacyChatColorUtils() { - throw new AssertionError(); - } - - /** - * Represents the legacy Minecraft format character, the section symbol. - */ - public static final char FORMAT_CHAR = '\u00a7'; - - /** - * Translates a string with Minecraft color codes prefixed with a different character than the section symbol into - * a string that uses the section symbol. - * @param originalChar the char the color codes are prefixed by - * @param text the text to translate - * @return the translated text - */ - public static String translate(char originalChar, @NonNull String text) { - Preconditions.checkNotNull(text, "text"); - char[] textChars = text.toCharArray(); - int foundSectionIdx = -1; - for (int i = 0; i < textChars.length; i++) { - char textChar = textChars[i]; - if (textChar == originalChar) { - foundSectionIdx = i; - continue; - } - - if (foundSectionIdx >= 0) { - textChar = Character.toLowerCase(textChar); - if ((textChar >= 'a' && textChar <= 'f') || (textChar >= '0' && textChar <= '9') || - (textChar >= 'l' && textChar <= 'o' || textChar == 'r')) { - textChars[foundSectionIdx] = FORMAT_CHAR; - } - foundSectionIdx = -1; - } - } - return new String(textChars); - } - - /** - * A regex that matches all Minecraft color codes and removes them. - */ - private static final Pattern CHAT_COLOR_MATCHER = Pattern.compile("(?i)" + Character.toString(FORMAT_CHAR) + "[0-9A-FL-OR]"); - - /** - * Removes all Minecraft color codes from the string. - * @param text the text to remove color codes from - * @return a new String without Minecraft color codes - */ - public static String removeFormatting(@NonNull String text) { - Preconditions.checkNotNull(text, "text"); - return CHAT_COLOR_MATCHER.matcher(text).replaceAll(""); - } -} diff --git a/api/src/test/java/com/velocitypowered/api/util/LegacyChatColorUtilsTest.java b/api/src/test/java/com/velocitypowered/api/util/LegacyChatColorUtilsTest.java deleted file mode 100644 index b98b7027b..000000000 --- a/api/src/test/java/com/velocitypowered/api/util/LegacyChatColorUtilsTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.velocitypowered.api.util; - -import com.velocitypowered.api.util.LegacyChatColorUtils; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -class LegacyChatColorUtilsTest { - private static final String NON_FORMATTED = "Velocity"; - private static final String FORMATTED = "\u00a7cVelocity"; - private static final String FORMATTED_MULTIPLE = "\u00a7c\u00a7lVelocity"; - private static final String FORMATTED_MULTIPLE_VARIED = "\u00a7c\u00a7lVelo\u00a7a\u00a7mcity"; - private static final String INVALID = "\u00a7gVelocity"; - private static final String RAW_SECTION = "\u00a7"; - - @Test - void removeFormattingNonFormatted() { - assertEquals(NON_FORMATTED, LegacyChatColorUtils.removeFormatting(NON_FORMATTED)); - } - - @Test - void removeFormattingFormatted() { - assertEquals(NON_FORMATTED, LegacyChatColorUtils.removeFormatting(FORMATTED)); - } - - @Test - void removeFormattingFormattedMultiple() { - assertEquals(NON_FORMATTED, LegacyChatColorUtils.removeFormatting(FORMATTED_MULTIPLE)); - } - - @Test - void removeFormattingFormattedMultipleVaried() { - assertEquals(NON_FORMATTED, LegacyChatColorUtils.removeFormatting(FORMATTED_MULTIPLE_VARIED)); - } - - @Test - void removeFormattingInvalidFormat() { - assertEquals(INVALID, LegacyChatColorUtils.removeFormatting(INVALID)); - } - - @Test - void removeFormattingRawSection() { - assertEquals(RAW_SECTION, LegacyChatColorUtils.removeFormatting(RAW_SECTION)); - } - - @Test - void translate() { - assertEquals(FORMATTED, LegacyChatColorUtils.translate('&', "&cVelocity")); - } - - @Test - void translateMultiple() { - assertEquals(FORMATTED_MULTIPLE, LegacyChatColorUtils.translate('&', "&c&lVelocity")); - assertEquals(FORMATTED_MULTIPLE_VARIED, LegacyChatColorUtils.translate('&', "&c&lVelo&a&mcity")); - } - - @Test - void translateDifferentChar() { - assertEquals(FORMATTED, LegacyChatColorUtils.translate('$', "$cVelocity")); - assertEquals(FORMATTED_MULTIPLE_VARIED, LegacyChatColorUtils.translate('$', "$c$lVelo$a$mcity")); - } -} \ No newline at end of file diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java index feb076dbb..c2ada433c 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java @@ -5,8 +5,6 @@ import com.google.common.collect.ImmutableMap; import com.moandjiezana.toml.Toml; import com.velocitypowered.api.util.Favicon; import com.velocitypowered.proxy.util.AddressUtil; -import com.velocitypowered.api.util.LegacyChatColorUtils; -import io.netty.buffer.ByteBufUtil; import net.kyori.text.Component; import net.kyori.text.serializer.ComponentSerializers;