From 95996ccb9d6c8b567f71b9a1ccb7ddef66a03e04 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 31 Jan 2023 16:59:38 +0100 Subject: [PATCH] shutdown: await log This fixes that the help is not printed when providing invalid arguments --- src/main/java/de/bixilon/minosoft/Minosoft.kt | 1 + src/main/java/de/bixilon/minosoft/util/KUtil.kt | 5 ++++- src/main/java/de/bixilon/minosoft/util/logging/Log.kt | 11 +++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.kt b/src/main/java/de/bixilon/minosoft/Minosoft.kt index 069817e38..2b6aa3e41 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.kt +++ b/src/main/java/de/bixilon/minosoft/Minosoft.kt @@ -70,6 +70,7 @@ object Minosoft { fun main(args: Array) { val start = nanos() Log::class.java.forceInit() + ShutdownManager.addHook { Log.await() } CommandLineArguments.parse(args) Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Starting minosoft..." } diff --git a/src/main/java/de/bixilon/minosoft/util/KUtil.kt b/src/main/java/de/bixilon/minosoft/util/KUtil.kt index c89b82f09..4ea48218b 100644 --- a/src/main/java/de/bixilon/minosoft/util/KUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/KUtil.kt @@ -46,6 +46,7 @@ import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection import de.bixilon.minosoft.protocol.network.network.client.netty.NettyClient import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.buffers.OutByteBuffer +import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.util.account.microsoft.MicrosoftOAuthUtils import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.url.ResourceURLHandler @@ -293,7 +294,9 @@ object KUtil { } } ShutdownManager += { - Platform.exit() + if (!RunConfiguration.DISABLE_EROS) { + Platform.exit() + } } } diff --git a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt index 6c3543316..7818f8a89 100644 --- a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt +++ b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt @@ -114,10 +114,7 @@ object Log { return false } val setLevel = levels?.get(type) ?: LogLevels.INFO - if (setLevel.ordinal < level.ordinal) { - return true - } - return false + return setLevel.ordinal < level.ordinal } fun log(type: LogMessageType, level: LogLevels = LogLevels.INFO, additionalPrefix: ChatComponent? = null, message: Any?, vararg formatting: Any) { @@ -191,4 +188,10 @@ object Log { } log(type, additionalPrefix = null, messageBuilder = messageBuilder) } + + fun await() { + while (this.QUEUE.isNotEmpty()) { + Thread.sleep(1) + } + } }