diff --git a/src/main/java/de/bixilon/minosoft/data/text/ChatComponent.kt b/src/main/java/de/bixilon/minosoft/data/text/ChatComponent.kt index afd63ba43..da5d92c28 100644 --- a/src/main/java/de/bixilon/minosoft/data/text/ChatComponent.kt +++ b/src/main/java/de/bixilon/minosoft/data/text/ChatComponent.kt @@ -67,7 +67,7 @@ interface ChatComponent { companion object { @JvmOverloads - fun of(raw: Any?, translator: Translator? = null, parent: TextComponent? = null): ChatComponent { + fun of(raw: Any?, translator: Translator? = null, parent: TextComponent? = null, ignoreJson: Boolean = false): ChatComponent { if (raw == null) { return BaseComponent() } @@ -88,9 +88,11 @@ interface ChatComponent { is JsonPrimitive -> raw.asString else -> raw.toString() } - try { - return BaseComponent(translator, parent, JsonParser.parseString(string).asJsonObject) - } catch (ignored: RuntimeException) { + if (!ignoreJson) { + try { + return BaseComponent(translator, parent, JsonParser.parseString(string).asJsonObject) + } catch (ignored: RuntimeException) { + } } return BaseComponent(parent, string) 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 bbc4067e9..a2d93289a 100644 --- a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt +++ b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt @@ -100,16 +100,16 @@ object Log { is Throwable -> { val stringWriter = StringWriter() message.printStackTrace(PrintWriter(stringWriter)) - ChatComponent.of(stringWriter.toString()) + ChatComponent.of(stringWriter.toString(), ignoreJson = true) } is String -> { if (formatting.isNotEmpty()) { - ChatComponent.of(message.format(*formatting)) + ChatComponent.of(message.format(*formatting), ignoreJson = true) } else { - ChatComponent.of(message) + ChatComponent.of(message, ignoreJson = true) } } - else -> ChatComponent.of(message) + else -> ChatComponent.of(message, ignoreJson = true) } LOG_QUEUE.add(