From 98ee42ad480567bfc40664434b3ee44c24abb173 Mon Sep 17 00:00:00 2001 From: ColdDev Date: Mon, 24 Oct 2022 16:20:21 +0100 Subject: [PATCH] feat(config): add option to check commands with the chat filter --- pom.xml | 11 ++++++----- src/main/java/uranium/Main.java | 4 +++- .../java/uranium/listeners/ChatListener.java | 3 ++- .../java/uranium/listeners/CommandListener.java | 2 ++ src/main/java/uranium/tasks/IPCheck.java | 17 +++++++++++++++++ src/main/java/uranium/util/StringUtil.java | 7 +------ src/main/resources/config.yml | 2 ++ src/main/resources/plugin.yml | 2 +- 8 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 src/main/java/uranium/tasks/IPCheck.java diff --git a/pom.xml b/pom.xml index 04bf3a3..63b8f20 100644 --- a/pom.xml +++ b/pom.xml @@ -44,11 +44,12 @@ 2.11.2 provided - - org.xerial - sqlite-jdbc - 3.39.3.0 - + + + + + + club.minnced discord-webhooks diff --git a/src/main/java/uranium/Main.java b/src/main/java/uranium/Main.java index 530d724..a183ea8 100644 --- a/src/main/java/uranium/Main.java +++ b/src/main/java/uranium/Main.java @@ -17,6 +17,7 @@ public class Main extends JavaPlugin implements PluginMessageListener { setupCommands(); setupTasks(); setupPluginChannels(); + getLogger().info("Initialization is complete."); } public void onDisable() { @@ -25,6 +26,7 @@ public class Main extends JavaPlugin implements PluginMessageListener { } private void setupListeners() { + getLogger().info("Initializing events..."); getServer().getPluginManager().registerEvents(new PlayerListener(this), this); getServer().getPluginManager().registerEvents(new ChatListener(this), this); getServer().getPluginManager().registerEvents(new CommandListener(this), this); @@ -40,6 +42,7 @@ public class Main extends JavaPlugin implements PluginMessageListener { } private void setupPluginChannels() { + getLogger().info("Initializing plugin channels..."); getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); } @@ -48,7 +51,6 @@ public class Main extends JavaPlugin implements PluginMessageListener { getLogger().info("Initializing config..."); getConfig().options().copyDefaults(true); saveConfig(); - getLogger().info("Done!"); } @SuppressWarnings("UnstableApiUsage") diff --git a/src/main/java/uranium/listeners/ChatListener.java b/src/main/java/uranium/listeners/ChatListener.java index 6dddd8a..319af22 100644 --- a/src/main/java/uranium/listeners/ChatListener.java +++ b/src/main/java/uranium/listeners/ChatListener.java @@ -19,6 +19,7 @@ public class ChatListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onPlayerChat(AsyncPlayerChatEvent event) { + if (!plugin.getConfig().getBoolean("chat-filter.enabled")) return; User user = UserManager.getUser(event.getPlayer()); String message = event.getMessage(); if (user.hasPermission("uranium.bypass")) return; @@ -45,9 +46,9 @@ public class ChatListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH) public void onPlayerChat2(AsyncPlayerChatEvent event) { + if (!plugin.getConfig().getBoolean("chat-filter.enabled")) return; User user = UserManager.getUser(event.getPlayer()); String message = event.getMessage(); - if (!plugin.getConfig().getBoolean("chat-filter.enabled")) return; if (!StringUtil.validateMessage(message)) { event.setCancelled(true); diff --git a/src/main/java/uranium/listeners/CommandListener.java b/src/main/java/uranium/listeners/CommandListener.java index 9be4f11..305a5eb 100644 --- a/src/main/java/uranium/listeners/CommandListener.java +++ b/src/main/java/uranium/listeners/CommandListener.java @@ -33,6 +33,8 @@ public class CommandListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH) public void onPlayerPreprocessCommand2(PlayerCommandPreprocessEvent event) { + if (!plugin.getConfig().getBoolean("chat-filter.enabled")) return; + if (!plugin.getConfig().getBoolean("chat-filter.check-commands")) return; User user = UserManager.getUser(event.getPlayer()); String message = event.getMessage(); diff --git a/src/main/java/uranium/tasks/IPCheck.java b/src/main/java/uranium/tasks/IPCheck.java new file mode 100644 index 0000000..01b473c --- /dev/null +++ b/src/main/java/uranium/tasks/IPCheck.java @@ -0,0 +1,17 @@ +package uranium.tasks; + +import uranium.Main; + +public class IPCheck implements Runnable { + + private final Main plugin; + + public IPCheck(Main plugin) { + this.plugin = plugin; + } + + public void run() { + + } + +} \ No newline at end of file diff --git a/src/main/java/uranium/util/StringUtil.java b/src/main/java/uranium/util/StringUtil.java index d3b96f8..324c71c 100644 --- a/src/main/java/uranium/util/StringUtil.java +++ b/src/main/java/uranium/util/StringUtil.java @@ -23,12 +23,7 @@ public class StringUtil { } private static String removeCrap(String s) { - return s - .replace(" ", "") - .replace("_", "") - .replace("*", "") - .replace(".", "") - .replace("/", ""); // TODO: Replace with regex + return s.replaceAll("[^a-zA-Z0-9]", ""); } public static boolean validateUsername(String username) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index ffa4122..a45e3d9 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -3,6 +3,8 @@ chat-filter: enabled: true # Should usernames be checked on join? check-usernames: true + # Should we also check the contents of commands? + check-commands: true # Should posting the same message twice in a row be allowed? double-posting: false # Should there be an enforced delay between messages? diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f759901..daa06e4 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: Uranium -version: 1.0.0-LITE +version: 1.0-LITE main: uranium.Main description: A moderation utility for Eaglercraft 1.8 servers. author: Cold