diff --git a/api/src/main/java/com/alttd/chat/ChatImplementation.java b/api/src/main/java/com/alttd/chat/ChatImplementation.java index 36d5a15..9e5d218 100755 --- a/api/src/main/java/com/alttd/chat/ChatImplementation.java +++ b/api/src/main/java/com/alttd/chat/ChatImplementation.java @@ -77,9 +77,6 @@ public class ChatImplementation implements ChatAPI{ prefixes = new HashMap<>(); getLuckPerms().getGroupManager().getLoadedGroups().stream() .map(Group::getName).forEach(groupName -> prefixes.put(groupName, new PrefixConfig(groupName).PREFIXFORMAT)); - for (Map.Entry entry : prefixes.entrySet()) { - ALogger.info("prefix: " + entry.getKey() + " format: " + entry.getValue()); - } } } 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 1541b33..5914151 100755 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -31,7 +31,7 @@ public final class Config { public static File CONFIGPATH; public static void init() { // todo setup share for the config - CONFIGPATH = new File(System.getProperty("user.home") + File.separator + "share" + File.separator + "ChatPlugin"); + CONFIGPATH = new File(System.getProperty("user.home") + File.separator + "share" + File.separator + "configs" + File.separator + "ChatPlugin"); CONFIG_FILE = new File(CONFIGPATH, "config.yml"); configLoader = YAMLConfigurationLoader.builder() .setFile(CONFIG_FILE) diff --git a/api/src/main/java/com/alttd/chat/config/PrefixConfig.java b/api/src/main/java/com/alttd/chat/config/PrefixConfig.java index e46ed1a..4650c3b 100755 --- a/api/src/main/java/com/alttd/chat/config/PrefixConfig.java +++ b/api/src/main/java/com/alttd/chat/config/PrefixConfig.java @@ -36,10 +36,8 @@ public final class PrefixConfig { init(); } - public static File CONFIGPATH; public void init() { - CONFIGPATH = new File(System.getProperty("user.home") + File.separator + "share" + File.separator + "ChatPlugin"); - CONFIG_FILE = new File(CONFIGPATH, "prefix.yml"); + CONFIG_FILE = new File(Config.CONFIGPATH, "prefix.yml"); configLoader = YAMLConfigurationLoader.builder() .setFile(CONFIG_FILE) .setFlowStyle(DumperOptions.FlowStyle.BLOCK) diff --git a/api/src/main/java/com/alttd/chat/managers/RegexManager.java b/api/src/main/java/com/alttd/chat/managers/RegexManager.java index e1d0bfa..7939560 100755 --- a/api/src/main/java/com/alttd/chat/managers/RegexManager.java +++ b/api/src/main/java/com/alttd/chat/managers/RegexManager.java @@ -30,6 +30,10 @@ public class RegexManager { } public static String replaceText(String playerName, UUID uuid, String text) { // TODO loop all objects in the list and check if they violate based on the MATCHER + return replaceText(playerName, uuid, text, true); + } + + public static String replaceText(String playerName, UUID uuid, String text, boolean matcher) { User user = ChatAPI.get().getLuckPerms().getUserManager().getUser(uuid); if (user == null) { ALogger.warn("Tried to check chat filters for a user who doesn't exist in LuckPerms"); @@ -49,15 +53,13 @@ public class RegexManager { return null; } break; + case REPLACEMATCHER: + if(matcher) { + text = chatFilter.replaceMatcher(text); + } + break; } } - Matcher matcher = pattern.matcher(text); - while (matcher.find()) { - String group = matcher.group(); - System.out.println(group); - text = text.replace(group, group.substring(0, 3)); //TODO HARD CODED PLS PUT IN CONFIG - System.out.println(text); - } return text; } diff --git a/api/src/main/java/com/alttd/chat/objects/ChatFilter.java b/api/src/main/java/com/alttd/chat/objects/ChatFilter.java index 492c4fd..352ff79 100755 --- a/api/src/main/java/com/alttd/chat/objects/ChatFilter.java +++ b/api/src/main/java/com/alttd/chat/objects/ChatFilter.java @@ -57,4 +57,19 @@ public class ChatFilter { } return input; } + + public String replaceMatcher(String input) { + int lenght; + try { + lenght = Integer.parseInt(replacement); + } catch (NumberFormatException e) { + lenght = 3; // could load this from config and make it cleaner + } + Matcher matcher = pattern.matcher(input); + while (matcher.find()) { + String group = matcher.group(); + input = input.replace(group, group.substring(0, lenght)); + } + return input; + } } 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 75c0490..88245b7 100755 --- a/api/src/main/java/com/alttd/chat/util/Utility.java +++ b/api/src/main/java/com/alttd/chat/util/Utility.java @@ -98,22 +98,6 @@ public class Utility { public static String getGroupPrefix(Group group) { return ChatAPI.get().getPrefixes().get(group.getName()).replace("", 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) { diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java index c947a75..7bbf150 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java @@ -48,7 +48,7 @@ public class PlayerListener implements Listener { if (component != null) { String message = PlainComponentSerializer.plain().serialize(component); Player player = event.getPlayer(); - message = RegexManager.replaceText(player.getName(), player.getUniqueId(), message); // todo a better way for this + message = RegexManager.replaceText(player.getName(), player.getUniqueId(), message, false); // todo a better way for this if (message == null) { GalaxyUtility.sendBlockedNotification("Sign Language" , player, PlainComponentSerializer.plain().serialize(component), ""); diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java b/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java index 71020e5..c3e3f3a 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java @@ -17,6 +17,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import org.bukkit.Bukkit; +import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; import org.bukkit.scheduler.BukkitRunnable; @@ -33,7 +34,19 @@ public class PluginMessage implements PluginMessageListener { ByteArrayDataInput in = ByteStreams.newDataInput(bytes); String subChannel = in.readUTF(); switch (subChannel) { - case "privatemessage": { + case "privatemessagein": { + UUID uuid = UUID.fromString(in.readUTF()); + String target = in.readUTF(); + Player p = Bukkit.getPlayer(uuid); + if (p != null) { + p.sendMessage(GsonComponentSerializer.gson().deserialize(in.readUTF())); + p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1, 1); // todo load this from config + ChatUser user = ChatUserManager.getChatUser(uuid); + user.setReplyTarget(target); + } + break; + } + case "privatemessageout": { UUID uuid = UUID.fromString(in.readUTF()); String target = in.readUTF(); Player p = Bukkit.getPlayer(uuid); 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 27873bc..b93f985 100755 --- a/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java +++ b/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java @@ -53,7 +53,7 @@ public class ChatHandler { serverConnection = player.getCurrentServer().get(); Component component = miniMessage.parse(Config.MESSAGESENDER, templates); ByteArrayDataOutput buf = ByteStreams.newDataOutput(); - buf.writeUTF("privatemessage"); + buf.writeUTF("privatemessageout"); buf.writeUTF(player.getUniqueId().toString()); buf.writeUTF(player2.getUsername()); buf.writeUTF(GsonComponentSerializer.gson().serialize(component)); @@ -63,7 +63,7 @@ public class ChatHandler { serverConnection = player2.getCurrentServer().get(); component = miniMessage.parse(Config.MESSAGERECIEVER, templates); buf = ByteStreams.newDataOutput(); - buf.writeUTF("privatemessage"); + buf.writeUTF("privatemessagein"); buf.writeUTF(player2.getUniqueId().toString()); buf.writeUTF(player.getUsername()); buf.writeUTF(GsonComponentSerializer.gson().serialize(component));