From 831bac1be96804114965e4a4743434e23fc42f09 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Thu, 27 Jan 2022 21:05:50 +0100 Subject: [PATCH] Update minimessage and add helper methods --- api/build.gradle.kts | 2 +- .../alttd/chat/managers/ChatUserManager.java | 22 +++--- .../java/com/alttd/chat/util/Utility.java | 30 +++++++- build.gradle.kts | 5 +- .../com/alttd/chat/commands/ChatParty.java | 55 ++++++++------- .../java/com/alttd/chat/commands/Ignore.java | 5 +- .../com/alttd/chat/commands/MuteServer.java | 6 +- .../com/alttd/chat/commands/PartyChat.java | 3 +- .../java/com/alttd/chat/commands/Spy.java | 2 +- .../alttd/chat/commands/ToggleGlobalChat.java | 2 +- .../com/alttd/chat/handler/ChatHandler.java | 68 +++++++++---------- .../alttd/chat/listeners/ChatListener.java | 25 +++---- .../alttd/chat/listeners/PluginMessage.java | 5 +- .../com/alttd/chat/util/GalaxyUtility.java | 14 ++-- velocity/build.gradle.kts | 4 +- .../velocitychat/handlers/ChatHandler.java | 43 ++++++------ .../velocitychat/listeners/ChatListener.java | 18 ++--- .../listeners/ProxyPlayerListener.java | 23 +++---- 18 files changed, 173 insertions(+), 159 deletions(-) diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 9755144..4a0f174 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -4,7 +4,7 @@ plugins { dependencies { compileOnly("com.alttd:Galaxy-API:1.18.1-R0.1-SNAPSHOT") - compileOnly("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT") // Minimessage + compileOnly("net.kyori:adventure-text-minimessage:4.2.0-SNAPSHOT") // Minimessage compileOnly("org.spongepowered:configurate-yaml:4.1.2") // Configurate compileOnly("net.luckperms:api:5.3") // Luckperms } diff --git a/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java b/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java index fef889e..0fc1b42 100755 --- a/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java +++ b/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java @@ -9,27 +9,28 @@ import java.util.stream.Collectors; public final class ChatUserManager { - private static ArrayList chatUsers; + private static Map chatUsers; public static void initialize() { - chatUsers = new ArrayList<>(); + chatUsers = new TreeMap<>(); } public static void addUser(ChatUser user) { - chatUsers.add(user); + chatUsers.put(user.getUuid(), user); } public static void removeUser(ChatUser user) { chatUsers.remove(user); } + /** + * Get the ChatUser for this player or query the database to read the data. + * + * @param uuid the player who's ChatUser you'd like to get + * @return The ChatUser loaded from database or null if it's not existing. + */ public static ChatUser getChatUser(UUID uuid) { - for(ChatUser user : chatUsers) { - if(uuid.equals(user.getUuid())) { - return user; - } - } - return Queries.loadChatUser(uuid); + return chatUsers.computeIfAbsent(uuid, k -> Queries.loadChatUser(uuid)); } public List getUnReadMail(ChatUser user) { @@ -38,7 +39,4 @@ public final class ChatUserManager { .collect(Collectors.toList()); } - protected static List getChatUsers() { - return Collections.unmodifiableList(chatUsers); - } } diff --git a/api/src/main/java/com/alttd/chat/util/Utility.java b/api/src/main/java/com/alttd/chat/util/Utility.java index b222e43..9e4710f 100755 --- a/api/src/main/java/com/alttd/chat/util/Utility.java +++ b/api/src/main/java/com/alttd/chat/util/Utility.java @@ -7,6 +7,8 @@ import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.Style; import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.template.TemplateResolver; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.luckperms.api.LuckPerms; import net.luckperms.api.model.group.Group; @@ -25,6 +27,8 @@ public class Utility { static final Pattern DEFAULT_URL_PATTERN = Pattern.compile("(?:(https?)://)?([-\\w_.]+\\.\\w{2,})(/\\S*)?"); static final Pattern URL_SCHEME_PATTERN = Pattern.compile("^[a-z][a-z0-9+\\-.]*:"); + private static MiniMessage miniMessage = null; + public static String stringRegen = "\\{#[A-Fa-f0-9]{6}(<)?(>)?}"; public static HashMap colors; private static LegacyComponentSerializer legacySerializer; @@ -211,9 +215,8 @@ public class Utility { stringBuilder.append("<").append(hexColor1).append(">").append(split[i]); } } - MiniMessage miniMessage = MiniMessage.get(); - return stringBuilder.length()==0 ? miniMessage.parse(message) - : miniMessage.parse(stringBuilder.toString()); + return stringBuilder.length() == 0 ? Utility.parseMiniMessage(message) + : Utility.parseMiniMessage(stringBuilder.toString()); } public static String formatText(String message) { @@ -241,4 +244,25 @@ public class Utility { return message; } + public static Component parseMiniMessage(String message) { + return parseMiniMessage(message, null); + } + + public static Component parseMiniMessage(String message, List