From b0ae7e66d1d1c81ca3547174337bb903a94dd537 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Wed, 18 Aug 2021 00:15:45 +0200 Subject: [PATCH] Add basic support for hover objects in prefixes --- .../java/com/alttd/chat/config/Config.java | 4 ++++ .../java/com/alttd/chat/util/Utility.java | 23 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java index 96564ac..51e6b10 100755 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -158,6 +158,7 @@ public final class Config { /** ONLY EDIT ANYTHING BELOW THIS LINE **/ public static List PREFIXGROUPS = new ArrayList<>(); + public static List CONFLICTINGPREFIXGROUPS = new ArrayList<>(); public static List STAFFGROUPS = new ArrayList<>(); public static String MINIMIUMSTAFFRANK = "trainee"; public static String CONSOLENAME = "Console"; @@ -165,6 +166,9 @@ public final class Config { private static void settings() { PREFIXGROUPS = getList("settings.prefix-groups", Lists.newArrayList("discord", "socialmedia", "eventteam", "eventleader", "youtube", "twitch", "developer")); + CONFLICTINGPREFIXGROUPS = getList("settings.prefix-conflicts-groups", + Lists.newArrayList("eventteam", "eventleader")); + STAFFGROUPS = getList("settings.staff-groups", Lists.newArrayList("trainee", "moderator", "headmod", "admin", "manager", "owner")); CONSOLENAME = getString("settings.console-name", CONSOLENAME); 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 01311d2..8ef795d 100755 --- a/api/src/main/java/com/alttd/chat/util/Utility.java +++ b/api/src/main/java/com/alttd/chat/util/Utility.java @@ -62,13 +62,16 @@ public class Utility { StringBuilder prefix = new StringBuilder(); LuckPerms luckPerms = ChatAPI.get().getLuckPerms(); User user = luckPerms.getUserManager().getUser(uuid); + List prefixGroups = Config.PREFIXGROUPS; + if(prefixGroups.containsAll(Config.CONFLICTINGPREFIXGROUPS)) + prefixGroups.remove("eventteam"); // hardcoded for now, new prefix system would load this from config if(user == null) return Component.empty(); if(!single) { Collection inheritedGroups = user.getInheritedGroups(user.getQueryOptions()); inheritedGroups.stream() .sorted(Comparator.comparingInt(o -> o.getWeight().orElse(0))) .forEach(group -> { - if (Config.PREFIXGROUPS.contains(group.getName())) { + if (prefixGroups.contains(group.getName())) { prefix.append(getGroupPrefix(group)); } }); @@ -92,8 +95,22 @@ public class Utility { } public static String getGroupPrefix(Group group) { - - return group.getCachedData().getMetaData().getPrefix(); + switch (group.getName()) { // hardcoded for now, new prefix system would load this from config + case "discord": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + case "socialmedia": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + case "eventteam": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + case "eventleader": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + case "youtube": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + case "twitch": + return "" + group.getCachedData().getMetaData().getPrefix() + ""; + default: + return group.getCachedData().getMetaData().getPrefix(); + } } public static String getDisplayName(UUID uuid, String playerName) {