diff --git a/pom.xml b/pom.xml index 014390b..ddcba2d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,5 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.github.games647 @@ -92,7 +92,7 @@ sponge-repo https://repo.spongepowered.org/maven - + bungeecord-repo https://oss.sonatype.org/content/repositories/snapshots diff --git a/src/main/java/com/github/games647/colorconsole/bukkit/ColorConsoleBukkit.java b/src/main/java/com/github/games647/colorconsole/bukkit/ColorConsoleBukkit.java index fd00d10..0f9fdab 100644 --- a/src/main/java/com/github/games647/colorconsole/bukkit/ColorConsoleBukkit.java +++ b/src/main/java/com/github/games647/colorconsole/bukkit/ColorConsoleBukkit.java @@ -13,6 +13,7 @@ import java.util.logging.Level; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Layout; +import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; @@ -20,6 +21,8 @@ import org.bukkit.plugin.java.JavaPlugin; public class ColorConsoleBukkit extends JavaPlugin implements PlatformPlugin { private static final String TERMINAL_NAME = "TerminalConsole"; + private static final String CATSERVER_TERMINAL = "Console"; + private final Log4JInstaller installer = new Log4JInstaller(); @@ -42,7 +45,7 @@ public class ColorConsoleBukkit extends JavaPlugin implements PlatformPlugin { @Override public void installLogFormat(ConsoleConfig configuration) { try { - oldLayout = installer.installLog4JFormat(this, TERMINAL_NAME, configuration); + oldLayout = installer.installLog4JFormat(this, getTerminalName(), configuration); } catch (ReflectiveOperationException reflectiveEx) { getLogger().log(Level.WARNING, "Failed to install log format", reflectiveEx); } @@ -56,7 +59,7 @@ public class ColorConsoleBukkit extends JavaPlugin implements PlatformPlugin { @Override public void revertLogFormat() { try { - installer.revertLog4JFormat(TERMINAL_NAME, oldLayout); + installer.revertLog4JFormat(getTerminalName(), oldLayout); } catch (ReflectiveOperationException ex) { getLogger().log(Level.WARNING, "Cannot revert log format", ex); } @@ -98,4 +101,12 @@ public class ColorConsoleBukkit extends JavaPlugin implements PlatformPlugin { consoleConfig.setTruncateColor(bukkitConfig.getBoolean("truncateColor")); return consoleConfig; } + + private String getTerminalName() { + if (Bukkit.getVersion().contains("Cat")) { + return CATSERVER_TERMINAL; + } + + return TERMINAL_NAME; + } } diff --git a/src/main/java/com/github/games647/colorconsole/common/Log4JInstaller.java b/src/main/java/com/github/games647/colorconsole/common/Log4JInstaller.java index 535b5ae..f9cfbf1 100644 --- a/src/main/java/com/github/games647/colorconsole/common/Log4JInstaller.java +++ b/src/main/java/com/github/games647/colorconsole/common/Log4JInstaller.java @@ -8,8 +8,8 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.nio.charset.Charset; import java.util.Collection; +import java.util.EnumMap; import java.util.Map; -import java.util.TreeMap; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Appender; @@ -108,8 +108,7 @@ public class Log4JInstaller { public Appender getTerminalAppender(String terminalName) { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration conf = ctx.getConfiguration(); - - return conf.getAppenders().get(terminalName); + return conf.getAppender(terminalName); } @VisibleForTesting @@ -119,12 +118,12 @@ public class Log4JInstaller { @VisibleForTesting protected String formatDate(String logFormat, String dateStyle) { - return logFormat.replaceFirst("(%d)\\{.*?\\}", "%style{$0}{" + dateStyle + '}'); + return logFormat.replaceFirst("(%d)\\{.*?}", "%style{$0}{" + dateStyle + '}'); } @VisibleForTesting protected String mapLoggingLevels(String logFormat, Map levelColors) { - Map sortedColors = new TreeMap<>(); + Map sortedColors = new EnumMap<>(LoggingLevel.class); sortedColors.putAll(levelColors); String levelFormat = Joiner.on(", ").withKeyValueSeparator('=').join(sortedColors);