From 42d9a806ba5f7bce1ed5e40e2b5e54c651c4979c Mon Sep 17 00:00:00 2001 From: KingAlterIV <13559706+KingAlterIV@users.noreply.github.com> Date: Sat, 25 Apr 2020 19:04:57 -0700 Subject: [PATCH 1/3] Removed old Log Filter, added in a new functioning one. --- pom.xml | 6 + .../sparse/spigot/chat/menu/CMCommand.java | 26 ---- .../tom/sparse/spigot/chat/menu/CMPlugin.java | 2 + .../sparse/spigot/chat/menu/ChatMenuAPI.java | 2 - .../sparse/spigot/chat/util/LogFilter.java | 126 ++++++++++++++++++ src/main/resources/plugin.yml | 2 +- 6 files changed, 135 insertions(+), 29 deletions(-) create mode 100644 src/main/java/me/tom/sparse/spigot/chat/util/LogFilter.java diff --git a/pom.xml b/pom.xml index a7b7b50..1a1c10a 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,12 @@ 17.0.0 provided + + org.apache.logging.log4j + log4j-core + 2.13.2 + provided + diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/CMCommand.java b/src/main/java/me/tom/sparse/spigot/chat/menu/CMCommand.java index 22481f0..760a3bd 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/CMCommand.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/CMCommand.java @@ -42,30 +42,4 @@ public boolean onCommand(CommandSender sender, Command command, String label, St return true; } -// private static Filter originalFilter; -// private static PrintStream originalOut; - - static void setLoggerFilter() - { -// System.setOut(new PrintStream(new FilterOutputStream(originalOut = System.out) { -// public void write(byte[] b) throws IOException -// { -// if(new String(b).contains("/cmapi")) -// return; -// super.write(b); -// } -// })); - -// Logger logger = Bukkit.getLogger(); -// originalFilter = logger.getFilter(); -// logger.setFilter(record -> !record.getMessage().contains("/cmapi")); -// logger.setFilter(record -> false); - } - - static void restoreLoggerFilter() - { -// System.setOut(originalOut); -// Bukkit.getLogger().setFilter(originalFilter); - } - } diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java index 59b3ea6..81b176d 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java @@ -1,5 +1,6 @@ package me.tom.sparse.spigot.chat.menu; +import me.tom.sparse.spigot.chat.util.LogFilter; import org.bukkit.plugin.java.JavaPlugin; public class CMPlugin extends JavaPlugin @@ -7,6 +8,7 @@ public class CMPlugin extends JavaPlugin public void onEnable() { ChatMenuAPI.init(this); + new LogFilter(); } public void onDisable() diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java b/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java index 7f29052..97e827d 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java @@ -182,7 +182,6 @@ public static void init(@NotNull Plugin plugin) ChatMenuAPI.plugin = plugin; // Bukkit.getPluginCommand("cmapi").setExecutor(new CMCommand()); - CMCommand.setLoggerFilter(); new CMListener(plugin); try @@ -205,7 +204,6 @@ public static void disable() if(plugin == null) return; - CMCommand.restoreLoggerFilter(); plugin = null; interceptor.disable(); } diff --git a/src/main/java/me/tom/sparse/spigot/chat/util/LogFilter.java b/src/main/java/me/tom/sparse/spigot/chat/util/LogFilter.java new file mode 100644 index 0000000..ff98649 --- /dev/null +++ b/src/main/java/me/tom/sparse/spigot/chat/util/LogFilter.java @@ -0,0 +1,126 @@ +package me.tom.sparse.spigot.chat.util; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.core.Filter; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.Logger; +import org.apache.logging.log4j.message.Message; + +public class LogFilter implements Filter { + + public LogFilter() { + ((Logger) LogManager.getRootLogger()).addFilter(this); + } + + private Result filter(String message) { + if (message.contains("/cmapi")) return Result.DENY; + return Result.NEUTRAL; + } + + @Override + public Result filter(LogEvent event) { + return filter(event.getMessage().getFormattedMessage()); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object... arg4) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, Object message, Throwable arg4) { + return filter(message.toString()); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, Message message, Throwable arg4) { + return filter(message.getFormattedMessage()); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8, Object arg9) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8, Object arg9, Object arg10) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8, Object arg9, Object arg10, Object arg11) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12) { + return filter(message); + } + + @Override + public Result filter(Logger arg0, Level arg1, Marker arg2, String message, Object arg4, Object arg5, Object arg6, + Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13) { + return filter(message); + } + + @Override + public State getState() {return State.STARTED;} + + @Override + public void initialize() {} + + @Override + public boolean isStarted() {return true;} + + @Override + public boolean isStopped() {return false;} + + @Override + public void start() {} + + @Override + public void stop() {} + + @Override + public Result getOnMatch() { + return Result.NEUTRAL; + } + + @Override + public Result getOnMismatch() { + return Result.NEUTRAL; + } +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 62a320c..965c230 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ name: ChatMenuAPI -version: 1.1.1 +version: 1.1.2 author: Tom main: me.tom.sparse.spigot.chat.menu.CMPlugin \ No newline at end of file From a85847de23cea76e602a31389d948cc9e8c8a654 Mon Sep 17 00:00:00 2001 From: KingAlterIV <13559706+KingAlterIV@users.noreply.github.com> Date: Sat, 25 Apr 2020 19:42:17 -0700 Subject: [PATCH 2/3] Log Filter should start automatically now --- src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java | 1 - src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java index 81b176d..895c752 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java @@ -8,7 +8,6 @@ public class CMPlugin extends JavaPlugin public void onEnable() { ChatMenuAPI.init(this); - new LogFilter(); } public void onDisable() diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java b/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java index 97e827d..55ba669 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/ChatMenuAPI.java @@ -2,6 +2,7 @@ import me.tom.sparse.spigot.chat.protocol.ChatPacketInterceptor; import me.tom.sparse.spigot.chat.protocol.PlayerChatIntercept; +import me.tom.sparse.spigot.chat.util.LogFilter; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.map.MapFont; @@ -183,6 +184,7 @@ public static void init(@NotNull Plugin plugin) ChatMenuAPI.plugin = plugin; // Bukkit.getPluginCommand("cmapi").setExecutor(new CMCommand()); new CMListener(plugin); + new LogFilter(); try { From 0a3c89ef4c93355595514b6ed314a0d152febfee Mon Sep 17 00:00:00 2001 From: KingAlterIV <13559706+KingAlterIV@users.noreply.github.com> Date: Sat, 25 Apr 2020 19:47:02 -0700 Subject: [PATCH 3/3] Forgot to remove the unused import before pushing the old commit. --- src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java index 895c752..59b3ea6 100644 --- a/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java +++ b/src/main/java/me/tom/sparse/spigot/chat/menu/CMPlugin.java @@ -1,6 +1,5 @@ package me.tom.sparse.spigot.chat.menu; -import me.tom.sparse.spigot.chat.util.LogFilter; import org.bukkit.plugin.java.JavaPlugin; public class CMPlugin extends JavaPlugin