diff --git a/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.java b/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.java index a1a4809bf..7fa760e0b 100644 --- a/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.java +++ b/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.java @@ -78,9 +78,7 @@ public class AssetsManager { try { downloadAssetsIndex(); } catch (IOException e) { - if (Log.getLevel().ordinal() >= LogLevels.DEBUG.ordinal()) { - e.printStackTrace(); - } + Log.printException(e, LogLevels.DEBUG); Log.warn("Could not download assets index. Please check your internet connection"); } assets.putAll(parseAssetsIndex(ASSETS_INDEX_HASH)); diff --git a/src/main/java/de/bixilon/minosoft/logging/Log.java b/src/main/java/de/bixilon/minosoft/logging/Log.java index a836d63f2..f4ca8fd52 100644 --- a/src/main/java/de/bixilon/minosoft/logging/Log.java +++ b/src/main/java/de/bixilon/minosoft/logging/Log.java @@ -161,4 +161,17 @@ public class Log { public static void info(String message) { log(LogLevels.INFO, message, ChatColors.getColorByName("white")); } + + public static boolean printException(Exception exception, LogLevels minimumLogLevel) { + // ToDo: log to file, print also exceptions that are not printed with this method + if (Log.getLevel().ordinal() >= minimumLogLevel.ordinal()) { + exception.printStackTrace(); + return true; + } + return false; + } + + public static boolean printException(Exception exception) { + return printException(exception, LogLevels.FATAL); // always print + } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/Connection.java b/src/main/java/de/bixilon/minosoft/protocol/network/Connection.java index 2d40ad229..14ecd3fdb 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/network/Connection.java +++ b/src/main/java/de/bixilon/minosoft/protocol/network/Connection.java @@ -158,9 +158,7 @@ public class Connection { try { Versions.loadVersionMappings(version.getVersionId()); } catch (IOException e) { - if (Log.getLevel().ordinal() >= LogLevels.DEBUG.ordinal()) { - e.printStackTrace(); - } + Log.printException(e, LogLevels.DEBUG); Log.fatal(String.format("Could not load mapping for %s. This version seems to be unsupported!", version)); lastException = new RuntimeException(String.format("Mappings could not be loaded: %s", e.getLocalizedMessage())); setConnectionState(ConnectionStates.FAILED_NO_RETRY); @@ -223,9 +221,7 @@ public class Connection { } packet.handle(getHandler()); } catch (Exception e) { - if (Log.getLevel().ordinal() >= LogLevels.PROTOCOL.ordinal()) { - e.printStackTrace(); - } + Log.printException(e, LogLevels.PROTOCOL); } } }, String.format("%d/Handling", connectionId)); diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/socket/SocketNetwork.java b/src/main/java/de/bixilon/minosoft/protocol/network/socket/SocketNetwork.java index e274abd29..26b2c90f5 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/network/socket/SocketNetwork.java +++ b/src/main/java/de/bixilon/minosoft/protocol/network/socket/SocketNetwork.java @@ -233,18 +233,14 @@ public class SocketNetwork implements Network { e.printStackTrace(); } } catch (Exception e) { + Log.printException(e, LogLevels.DEBUG); Log.protocol(String.format("An error occurred while parsing an packet (%s): %s", packet, e)); - if (Log.getLevel().ordinal() >= LogLevels.DEBUG.ordinal()) { - e.printStackTrace(); - } } } disconnect(); } catch (IOException e) { // Could not connect - if (Log.getLevel().ordinal() >= LogLevels.DEBUG.ordinal()) { - e.printStackTrace(); - } + Log.printException(e, LogLevels.DEBUG); if (socketSThread != null) { socketSThread.interrupt(); } diff --git a/src/main/java/de/bixilon/minosoft/util/HTTP.java b/src/main/java/de/bixilon/minosoft/util/HTTP.java index 58a40afb7..85e1a4d94 100644 --- a/src/main/java/de/bixilon/minosoft/util/HTTP.java +++ b/src/main/java/de/bixilon/minosoft/util/HTTP.java @@ -33,9 +33,7 @@ public final class HTTP { try { return client.send(request, HttpResponse.BodyHandlers.ofString()); } catch (IOException | InterruptedException e) { - if (Log.getLevel().ordinal() >= LogLevels.DEBUG.ordinal()) { - e.printStackTrace(); - } + Log.printException(e, LogLevels.DEBUG); } return null; }