diff --git a/pom.xml b/pom.xml index 5d6700f3..c6283de7 100644 --- a/pom.xml +++ b/pom.xml @@ -73,9 +73,7 @@ true - net.kyori:adventure-text-minimessage - net.kyori:adventure-text-serializer-gson - net.kyori:adventure-api + net.kyori:* @@ -100,7 +98,7 @@ 9.0 1.18.16 master-SNAPSHOT - [1.16,] + [1.16,1.16.5] 4.13.1 [1.16,] 1.12-SNAPSHOT diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java b/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java index 0fba0663..c9a5dc8c 100644 --- a/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java +++ b/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java @@ -569,13 +569,8 @@ public class FlagWatcher { } if (NmsVersion.v1_13.isSupported()) { - Optional optional; - - if (DisguiseUtilities.hasAdventureTextSupport()) { - optional = Optional.of(AdventureComponentConverter.fromComponent(DisguiseUtilities.getAdventureChat(name))); - } else { - optional = Optional.of(WrappedChatComponent.fromJson(ComponentSerializer.toString(DisguiseUtilities.getColoredChat(name)))); - } + Optional optional = + Optional.of(WrappedChatComponent.fromJson(DisguiseUtilities.serialize(DisguiseUtilities.getAdventureChat(name)))); setData(MetaIndex.ENTITY_CUSTOM_NAME, optional); } else { diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java index b160a8b9..c2e98eff 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java @@ -39,7 +39,6 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.chat.ComponentSerializer; import org.apache.commons.lang.StringUtils; @@ -219,29 +218,8 @@ public class DisguiseUtilities { } } - /** - * This should return true every single time, except for when ProtocolLib isn't updated for AdventureComponentConverter - * - * The reason being is that we shade the adventure text library in the plugin - */ - public static boolean hasAdventureTextSupport() { - if (adventureTextSupport == null) { - try { - adventureTextSupport = true; - - // Force a test for support by actually trying to use it all - BaseComponent[] test1 = ComponentSerializer.parse(GsonComponentSerializer.gson().serialize(getAdventureChat("test"))); - WrappedChatComponent test2 = AdventureComponentConverter.fromComponent(DisguiseUtilities.getAdventureChat("test")); - - if (test1 == null || test1.length == 0 || test2 == null) { - adventureTextSupport = false; - } - } catch (Throwable ex) { - adventureTextSupport = false; - } - } - - return adventureTextSupport; + public static String serialize(Component component) { + return GsonComponentSerializer.gson().serialize(component); } public static void doSkinUUIDWarning(CommandSender sender) { @@ -2549,110 +2527,12 @@ public class DisguiseUtilities { return MiniMessage.get().parse(message); } - /** - * Modification of TextComponent.fromLegacyText - */ public static BaseComponent[] getColoredChat(String message) { if (message.isEmpty()) { return new BaseComponent[0]; } - if (hasAdventureTextSupport()) { - return ComponentSerializer.parse(GsonComponentSerializer.gson().serialize(getAdventureChat(message))); - } - - ArrayList components = new ArrayList(); - StringBuilder builder = new StringBuilder(); - TextComponent component = new TextComponent(); - Matcher matcher = urlMatcher.matcher(message); - - for (int i = 0; i < message.length(); ++i) { - char c = message.charAt(i); - TextComponent old; - - if (c == ChatColor.COLOR_CHAR && i + 1 >= message.length()) { - break; - } - - if (c == ChatColor.COLOR_CHAR || (NmsVersion.v1_16.isSupported() && c == '<' && i + 9 < message.length() && - Pattern.matches("<#[0-9a-fA-F]{6}>", message.substring(i, i + 9)))) { - i++; - - net.md_5.bungee.api.ChatColor format; - - if (c != ChatColor.COLOR_CHAR || (message.length() - i >= 7 && Pattern.matches("#[0-9a-fA-F]{6}", message.substring(i, i + 7)))) { - format = net.md_5.bungee.api.ChatColor.of(message.substring(i, i + 7)); - - i += c == '<' ? 7 : 8; - } else { - c = message.charAt(i); - - if (c >= 'A' && c <= 'Z') { - c = (char) (c + 32); - } - - format = net.md_5.bungee.api.ChatColor.getByChar(c); - } - - if (format != null) { - if (builder.length() > 0) { - old = component; - component = new TextComponent(component); - old.setText(builder.toString()); - builder = new StringBuilder(); - components.add(old); - } - - if (format == net.md_5.bungee.api.ChatColor.BOLD) { - component.setBold(true); - } else if (format == net.md_5.bungee.api.ChatColor.ITALIC) { - component.setItalic(true); - } else if (format == net.md_5.bungee.api.ChatColor.UNDERLINE) { - component.setUnderlined(true); - } else if (format == net.md_5.bungee.api.ChatColor.STRIKETHROUGH) { - component.setStrikethrough(true); - } else if (format == net.md_5.bungee.api.ChatColor.MAGIC) { - component.setObfuscated(true); - } else if (format == net.md_5.bungee.api.ChatColor.RESET) { - component = new TextComponent(); - component.setColor(net.md_5.bungee.api.ChatColor.WHITE); - } else { - component = new TextComponent(); - component.setColor(format); - } - } - } else { - int pos = message.indexOf(32, i); - if (pos == -1) { - pos = message.length(); - } - - if (matcher.region(i, pos).find()) { - if (builder.length() > 0) { - old = component; - component = new TextComponent(component); - old.setText(unquoteHex(builder.toString())); - builder = new StringBuilder(); - components.add(old); - } - - old = component; - component = new TextComponent(component); - String urlString = message.substring(i, pos); - component.setText(unquoteHex(urlString)); - component.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, urlString.startsWith("http") ? urlString : "http://" + urlString)); - components.add(component); - i += pos - i - 1; - component = old; - } else { - builder.append(c); - } - } - } - - component.setText(unquoteHex(builder.toString())); - components.add(component); - return components.toArray(new BaseComponent[0]); + return ComponentSerializer.parse(serialize(getAdventureChat(message))); } public static void sendProtocolLibUpdateMessage(CommandSender p, String version, String requiredProtocolLib) { diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java b/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java index ec4a66e7..cec73b14 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java @@ -297,12 +297,9 @@ public enum LibsMsg { SELF_DISGUISE_HIDDEN("Self disguise hidden as it's too tall.."); private final String string; - private final String useString; LibsMsg(String string) { this.string = string; - - useString = DisguiseUtilities.hasAdventureTextSupport() ? string : getVanillaFormat(); } public String getVanillaFormat() { @@ -319,10 +316,6 @@ public enum LibsMsg { return string; } - public String getStringToUse() { - return useString; - } - public BaseComponent[] getChat(Object... strings) { String string = get(strings); diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java b/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java index c9e420ab..a95b523d 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java @@ -138,19 +138,19 @@ public enum TranslateType { save(null, message, comment); } - public void save(LibsMsg orig, String message, String comment) { - toDeDupe.put(StringEscapeUtils.escapeJava(message.replace("§", "&")), false); + public void save(LibsMsg orig, String rawMessage, String comment) { + toDeDupe.put(StringEscapeUtils.escapeJava(rawMessage.replace("§", "&")), false); - if (translated.containsKey(message)) { + if (translated.containsKey(rawMessage)) { return; } - String value = message; + String value = rawMessage; if (orig != null) { String vanilla = orig.getVanillaFormat(); - if (translated.containsKey(vanilla) && !vanilla.equals(message) && !translated.get(vanilla).equals(vanilla)) { + if (translated.containsKey(vanilla) && !vanilla.equals(rawMessage) && !translated.get(vanilla).equals(vanilla)) { value = translated.get(vanilla); for (ChatColor color : ChatColor.values()) { @@ -159,7 +159,7 @@ public enum TranslateType { } } - translated.put(message, value); + translated.put(rawMessage, value); try { boolean exists = getFile().exists(); @@ -185,10 +185,10 @@ public enum TranslateType { } } - String sanitizedKey = StringEscapeUtils.escapeJava(message.replace("§", "&")); - String sanitized = StringEscapeUtils.escapeJava(value.replace("§", "&")); + String sanitizedKey = StringEscapeUtils.escapeJava(rawMessage.replace("§", "&")); + String sanitizedValue = StringEscapeUtils.escapeJava(value.replace("§", "&")); - writer.write("\n" + (comment != null ? "# " + comment + "\n" : "") + "\"" + sanitizedKey + "\": \"" + sanitized + "\"\n"); + writer.write("\n" + (comment != null ? "# " + comment + "\n" : "") + "\"" + sanitizedKey + "\": \"" + sanitizedValue + "\"\n"); written++; } catch (Exception ex) { ex.printStackTrace(); @@ -274,7 +274,7 @@ public enum TranslateType { } public String get(LibsMsg msg) { - return get(msg.getStringToUse()); + return get(msg.getRaw()); } public String get(String msg) {