diff --git a/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatMessageType.kt b/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatMessageType.kt index ce7181de8..12e3f71d7 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatMessageType.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatMessageType.kt @@ -20,6 +20,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.codec.ResourceLocationCodec +import de.bixilon.minosoft.data.text.formatting.color.ChatColors class ChatMessageType( override val resourceLocation: ResourceLocation, @@ -33,11 +34,12 @@ class ChatMessageType( } companion object : ResourceLocationCodec { + private val DEFAULT_PROPERTIES = TypeProperties("[%s] %s", listOf(ChatParameter.SENDER, ChatParameter.SENDER), mapOf("color" to ChatColors.GRAY)) override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): ChatMessageType { return ChatMessageType( resourceLocation = resourceLocation, - chat = data["chat"].asJsonObject().let { TypeProperties.deserialize(it) }, + chat = data["chat"]?.asJsonObject()?.let { TypeProperties.deserialize(it) } ?: DEFAULT_PROPERTIES, narration = data["narration"]?.asJsonObject()?.let { TypeProperties.deserialize(it) }, position = data["position"]?.let { ChatTextPositions[it] } ?: ChatTextPositions.CHAT, ) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatParameter.kt b/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatParameter.kt index 1c018dce9..73ddc671e 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatParameter.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/chat/ChatParameter.kt @@ -25,5 +25,12 @@ enum class ChatParameter { companion object : ValuesEnum { override val VALUES = values() override val NAME_MAP: Map = EnumUtil.getEnumValues(VALUES) + + override fun get(name: String): ChatParameter { + return when (name.lowercase()) { + "team_name" -> TARGET + else -> super.get(name) + } + } } }