BaseComponent: allow snake case keys in styling properties

This commit is contained in:
Bixilon 2021-08-03 21:56:15 +02:00
parent 095cd14d8b
commit b7c928f02b
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 5 additions and 6 deletions

View File

@ -24,6 +24,7 @@ import de.bixilon.minosoft.util.KUtil.nullCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toResourceLocation
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
import javafx.collections.ObservableList
import javafx.scene.Node
import java.text.CharacterIterator
@ -124,7 +125,7 @@ class BaseComponent : ChatComponent {
val color = json["color"]?.nullCast<String>()?.toColor() ?: parent?.color
val outlineColor = json["outlineColor"]?.nullCast<String>()?.toColor() ?: parent?.outlineColor
val outlineColor = json["outlineColor", "outline_color"]?.nullCast<String>()?.toColor() ?: parent?.outlineColor
val formatting = parent?.formatting?.toMutableSet() ?: mutableSetOf()
@ -135,8 +136,8 @@ class BaseComponent : ChatComponent {
formatting.addOrRemove(PreChatFormattingCodes.OBFUSCATED, json["obfuscated"]?.toBoolean())
formatting.addOrRemove(PreChatFormattingCodes.SHADOWED, json["shadowed"]?.toBoolean())
val clickEvent = json["clickEvent"]?.compoundCast()?.let { click -> ClickEvent(click, restrictedMode) }
val hoverEvent = json["hoverEvent"]?.compoundCast()?.let { hover -> HoverEvent(hover) }
val clickEvent = json["clickEvent", "click_event"]?.compoundCast()?.let { click -> ClickEvent(click, restrictedMode) }
val hoverEvent = json["hoverEvent", "hover_event"]?.compoundCast()?.let { hover -> HoverEvent(hover) }
val textComponent = TextComponent(
message = currentText,

View File

@ -53,9 +53,7 @@ object NBTUtil {
}
operator fun Map<String, Any>.get(key1: String, key2: String, vararg keys: String): Any? {
this[key1]?.let { return it }
this[key2]?.let { return it }
operator fun Map<String, Any>.get(vararg keys: String): Any? {
for (key in keys) {
this[key]?.let { return it }
}