diff --git a/src/main/java/de/bixilon/minosoft/util/json/Jackson.kt b/src/main/java/de/bixilon/minosoft/util/json/Jackson.kt index 4a800899b..541403bf8 100644 --- a/src/main/java/de/bixilon/minosoft/util/json/Jackson.kt +++ b/src/main/java/de/bixilon/minosoft/util/json/Jackson.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.util.json import com.fasterxml.jackson.core.JsonParser +import com.fasterxml.jackson.core.json.JsonReadFeature import com.fasterxml.jackson.databind.DeserializationFeature import com.fasterxml.jackson.databind.MapperFeature import com.fasterxml.jackson.databind.PropertyNamingStrategies @@ -31,6 +32,7 @@ object Jackson { .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .disable(JsonParser.Feature.AUTO_CLOSE_SOURCE) .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS) + .enable(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS) .build() .registerModule( KotlinModule.Builder() diff --git a/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt b/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt index 7e60b9df1..1f93cab0d 100644 --- a/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt +++ b/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt @@ -227,6 +227,13 @@ internal class ChatComponentTest { assertEquals(expected, component) } + @Test + fun `JSON not escaped new line`() { + val text = ChatComponent.of("""{"text":"Unsupported protocol version 762.""" + "\n" + """Try connecting with Minecraft 1.8.x-1.12.x"}""") + val expected = TextComponent("Unsupported protocol version 762.\nTry connecting with Minecraft 1.8.x-1.12.x") + assertEquals(text, expected) + } + private fun assertEquals(expected: ChatComponent, actual: ChatComponent) { when (expected) { is BaseComponent -> {