From a76ca7f850ea5abad4efaf7d2d3cd6a479a361fc Mon Sep 17 00:00:00 2001 From: len <40720638+destro174@users.noreply.github.com> Date: Fri, 14 May 2021 00:06:21 +0200 Subject: [PATCH] Attempt to load regexes from config --- .../com/alttd/chat/ChatImplementation.java | 5 -- .../com/alttd/chat/handler/ChatHandler.java | 4 +- .../com/alttd/chat/handlers/ChatHandler.java | 85 +------------------ .../main/java/com/alttd/chat/util/Regex.java | 18 ++++ 4 files changed, 20 insertions(+), 92 deletions(-) diff --git a/api/src/main/java/com/alttd/chat/ChatImplementation.java b/api/src/main/java/com/alttd/chat/ChatImplementation.java index db3f8fd..cb30b33 100644 --- a/api/src/main/java/com/alttd/chat/ChatImplementation.java +++ b/api/src/main/java/com/alttd/chat/ChatImplementation.java @@ -26,11 +26,6 @@ public class ChatImplementation implements ChatAPI{ luckPerms = getLuckPerms(); //databaseConnection = getDataBase(); // TODO fix database on proxy, shade sql, add defaults to config - - // LOAD REGEXES, sad way of doing it:( - for(ConfigurationNode node : Config.REGEXNODE.getChildrenMap().values()) { - new RegexConfig(node.getString()); - } } @Override diff --git a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java index f1fc5d1..c9dae8b 100644 --- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java +++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java @@ -14,9 +14,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class ChatHandler { @@ -60,7 +58,7 @@ public class ChatHandler { } public Component itemComponent(ItemStack item) { - Component component = Component.text("[i]"); // todo config stuff + Component component = Component.text("[i]"); if(item.getType().equals(Material.AIR)) return component; boolean dname = item.hasItemMeta() && item.getItemMeta().hasDisplayName(); diff --git a/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java b/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java index 0594dc7..3259038 100644 --- a/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java +++ b/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java @@ -57,7 +57,7 @@ public class ChatHandler { senderName = sender.getUsername(); //plugin.getChatHandler().getChatPlayer(sender.getUniqueId()).setReplyTarget(event.getRecipient().getUniqueId()); // TODO this needs to be cleaner } else { - senderName = "Console"; // TODO console name from config + senderName = Config.CONSOLENAME; } receiverName = event.getRecipient().getUsername(); @@ -77,87 +77,4 @@ public class ChatHandler { event.getRecipient().sendMessage(receiverMessage); } - public void globalChat(CommandSource source, String message) { - String senderName, serverName, prefix; - Map map = new HashMap<>(); - - if (source instanceof Player) { - Player sender = (Player) source; - senderName = sender.getUsername(); - serverName = sender.getCurrentServer().isPresent() ? sender.getCurrentServer().get().getServerInfo().getName() : "Altitude"; - prefix = getPrefix(sender); - } else { - senderName = "Console"; // TODO console name from config - serverName = "Altitude"; - prefix = ""; - } - - MiniMessage miniMessage = MiniMessage.get(); - - map.put("sender", senderName); - map.put("message", message); - map.put("server", serverName); - map.put("prefix", prefix); - - Component component = miniMessage.parse(Config.GCFORMAT, map); - - for(Player p: VelocityChat.getPlugin().getProxy().getAllPlayers()) { - if(p.hasPermission(Config.GCPERMISSION)); - p.sendMessage(component); - //TODO send global chat with format from config - } - - } - - /** - * returns a component containing all prefixes a player has. - * - * @param player the player - * @return a prefix component - */ - public String getPrefix(Player player) { - return getPrefix(player, false); - } - - /** - * returns a component containing all or only the highest prefix a player has. - * - * @param player the player - * @param highest - * @return a prefix component - */ - public String getPrefix(Player player, boolean highest) { - // TODO cache these components on load, and return them here? - StringBuilder prefix = new StringBuilder(); - LuckPerms luckPerms = VelocityChat.getPlugin().API().getLuckPerms(); - User user = luckPerms.getUserManager().getUser(player.getUniqueId()); - if(user == null) return ""; - if(!highest) { - Collection inheritedGroups = user.getInheritedGroups(user.getQueryOptions()); - inheritedGroups.stream() - .sorted(Comparator.comparingInt(o -> o.getWeight().orElse(0))) - .forEach(group -> { - if (Config.PREFIXGROUPS.contains(group.getName())) { - prefix.append("[").append(group.getCachedData().getMetaData().getPrefix()).append("]"); - } - }); - } - LegacyComponentSerializer.builder().character('&').hexColors(); - prefix.append("[").append(user.getCachedData().getMetaData().getPrefix()).append("]"); - /*component= MiniMessage.get().parse(prefix.toString()); - CompletableFuture userFuture = luckPerms.getUserManager().loadUser(player.getUniqueId()); - userFuture.thenAcceptAsync(user -> { - Collection inheritedGroups = user.getInheritedGroups(user.getQueryOptions()); - inheritedGroups.stream() - .sorted((o1, o2) -> Integer.compare(o1.getWeight().orElse(0), o2.getWeight().orElse(0))) - .forEach(group -> { - if(Config.PREFIXGROUPS.contains(group.getName())) { - prefix.append("[").append(group.getCachedData().getMetaData().getPrefix()).append("]"); - } - }); - return MiniMessage.get().parse(prefix.toString()); - });*/ - //return MiniMessage.get().parse(prefix.toString()); - return prefix.toString(); - } } diff --git a/velocity/src/main/java/com/alttd/chat/util/Regex.java b/velocity/src/main/java/com/alttd/chat/util/Regex.java index ed10e00..4c3ef0a 100644 --- a/velocity/src/main/java/com/alttd/chat/util/Regex.java +++ b/velocity/src/main/java/com/alttd/chat/util/Regex.java @@ -1,5 +1,12 @@ package com.alttd.chat.util; +import com.alttd.chat.config.Config; +import com.alttd.chat.config.RegexConfig; +import com.alttd.chat.config.ServerConfig; +import com.alttd.chat.objects.RegexType; +import com.google.common.collect.Lists; +import ninja.leaping.configurate.ConfigurationNode; + import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -13,6 +20,17 @@ public class Regex { // IDEA: Regex object -> RegexPattern, shatteredPattern, replacement, replacements public static void initRegex() { + // LOAD REGEXES, sad way of doing it:( + // maiby a REGEXobject and a list would be better here? + for(ConfigurationNode node : Config.REGEXNODE.getChildrenMap().values()) { + RegexConfig regexConfig = new RegexConfig(node.getString()); + if (RegexType.getType(regexConfig.TYPE) == RegexType.BLOCK) { + cancelRegex.put(Pattern.compile(regexConfig.REGEX), Lists.newArrayList(regexConfig.REPLACEMENT)); + } else if (RegexType.getType(regexConfig.TYPE) == RegexType.REPLACE) { + replaceRegex.put(regexConfig.REGEX, regexConfig.REPLACEMENT); + } + } + //TODO load data from config (a regex string, and it's exceptions if there are any) cancelRegex.put(Pattern.compile("\\b([R]+[^\\w]?[4A]+[^\\w]?[P]+(([^\\w]?[E3]+[^\\w]?[DT]*)|([^\\w]?[I!1]+[^\\w]?[S5]+[^\\w]?[T7]+)|([^\\w]?[I!1]+[^\\w]?[N]+[^\\w]?[G69]+)))\\b"), new ArrayList<>()); //TODO load data from config (a regex string and what to replace it with)