From a974dfd859b17648eb12f0b6fcdde5ee96e90eaf Mon Sep 17 00:00:00 2001 From: games647 Date: Sat, 4 May 2019 16:42:33 +0200 Subject: [PATCH] Use regex for checking for the presence of plugin tags --- .../bukkit/ColorPluginAppender.java | 5 ---- .../bungee/ColorPluginAppender.java | 5 ---- .../colorconsole/common/CommonFormatter.java | 9 ++++++- .../common/CommonFormatterTest.java | 27 +++++++++++++++++++ 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/github/games647/colorconsole/bukkit/ColorPluginAppender.java b/src/main/java/com/github/games647/colorconsole/bukkit/ColorPluginAppender.java index 182b8e2..10f10cc 100644 --- a/src/main/java/com/github/games647/colorconsole/bukkit/ColorPluginAppender.java +++ b/src/main/java/com/github/games647/colorconsole/bukkit/ColorPluginAppender.java @@ -37,11 +37,6 @@ public class ColorPluginAppender extends ColorAppender { @Override public LogEvent onAppend(LogEvent logEvent) { String oldMessage = logEvent.getMessage().getFormattedMessage(); - if (logEvent.getLoggerName().isEmpty()) { - // ignore non logging messages like command output - return logEvent; - } - String prefix = '[' + logEvent.getLoggerName() + "] "; //PaperSpigot append prefix diff --git a/src/main/java/com/github/games647/colorconsole/bungee/ColorPluginAppender.java b/src/main/java/com/github/games647/colorconsole/bungee/ColorPluginAppender.java index 583cbd9..abac10e 100644 --- a/src/main/java/com/github/games647/colorconsole/bungee/ColorPluginAppender.java +++ b/src/main/java/com/github/games647/colorconsole/bungee/ColorPluginAppender.java @@ -27,11 +27,6 @@ public class ColorPluginAppender extends ColorAppender { public LogEvent onAppend(LogEvent logEvent) { String message = logEvent.getMessage().getFormattedMessage(); String loggerName = logEvent.getLoggerName(); - if (logEvent.getLoggerName().isEmpty()) { - // ignore non logging messages like command output - return logEvent; - } - //old message + potential prefix and color codes StringBuilder msgBuilder = new StringBuilder(message.length() + loggerName.length() + 10); if (!PROXY_PREFIX.equals(loggerName)) { diff --git a/src/main/java/com/github/games647/colorconsole/common/CommonFormatter.java b/src/main/java/com/github/games647/colorconsole/common/CommonFormatter.java index 900c32c..d44d69e 100644 --- a/src/main/java/com/github/games647/colorconsole/common/CommonFormatter.java +++ b/src/main/java/com/github/games647/colorconsole/common/CommonFormatter.java @@ -10,6 +10,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import org.fusesource.jansi.Ansi; import org.fusesource.jansi.Ansi.Attribute; @@ -21,7 +22,10 @@ public class CommonFormatter { //copied from AnsiEscape in order to provide compatibility with older Minecraft versions private static final String CSI = "\u001b["; private static final char SUFFIX = 'm'; - private final String reset = Ansi.ansi().a(Ansi.Attribute.RESET).toString(); + + private static final Pattern TAG_PATTERN = Pattern.compile("^\\[.+\\].*$"); + + private final String reset = Ansi.ansi().a(Attribute.RESET).toString(); private final Set ignoreMessages; private final boolean truncateColor; @@ -63,6 +67,9 @@ public class CommonFormatter { public String colorizePluginTag(String message) { String newMessage = message; + if (!TAG_PATTERN.matcher(message).matches()) { + return newMessage; + } String startingColorCode = ""; if (message.startsWith(CSI)) { diff --git a/src/test/java/com/github/games647/colorconsole/common/CommonFormatterTest.java b/src/test/java/com/github/games647/colorconsole/common/CommonFormatterTest.java index 426b7fd..70add72 100644 --- a/src/test/java/com/github/games647/colorconsole/common/CommonFormatterTest.java +++ b/src/test/java/com/github/games647/colorconsole/common/CommonFormatterTest.java @@ -39,6 +39,33 @@ public class CommonFormatterTest { assertThat(formatter.colorizePluginTag("[TestPlugin] msg"), is(expected)); } + @Test + public void testColorizePluginTagNotPresentRight() { + loadPluginColors(); + + // unmodified + String msg = "[TestPlugin msg"; + assertThat(formatter.colorizePluginTag(msg), is(msg)); + } + + @Test + public void testColorizePluginTagNotPresentLeft() { + loadPluginColors(); + + // unmodified + String msg = "TestPlugin] msg"; + assertThat(formatter.colorizePluginTag(msg), is(msg)); + } + + @Test + public void testColorizePluginTagWrongOrder() { + loadPluginColors(); + + // unmodified + String msg = "]TestPlugin[ msg"; + assertThat(formatter.colorizePluginTag(msg), is(msg)); + } + @Test public void testColorizeNameDefault() { loadPluginColors();