fix < 1.15 build

This commit is contained in:
Bixilon 2022-10-19 15:49:42 +02:00
parent 2e96fefcaf
commit c30b6d5fa0
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -8,8 +8,6 @@ import de.bixilon.pixlyzer.util.Util.JSON_MAP_TYPE
import de.bixilon.pixlyzer.util.Util.compound
import de.bixilon.pixlyzer.util.Util.mapCast
import de.bixilon.pixlyzer.util.Util.nullCast
import net.minecraft.text.Decoration
import net.minecraft.text.Decoration.Parameter
import net.minecraft.text.Style
import net.minecraft.util.registry.Registry
import java.util.*
@ -19,7 +17,7 @@ object MessageTypeGenerator : Generator(
allowedFail = true,
allowEmpty = true,
) {
private val DEFAULT_FONT = Util.MAPPER.convertValue<MutableMap<String, Any>>(Style.DEFAULT_FONT_ID, JSON_MAP_TYPE)
private val DEFAULT_FONT = getField(Style::class.java, "DEFAULT_FONT_ID")?.get(null)?.let { Util.MAPPER.convertValue<MutableMap<String, Any>>(it, JSON_MAP_TYPE) }
val registry = getField(getClass("net.minecraft.util.registry.BuiltinRegistries"), "MESSAGE_TYPE")?.get(null) as Registry<Any>?
@ -37,28 +35,28 @@ object MessageTypeGenerator : Generator(
json["id"] = registry.getRawId(type)
getField(messageTypeClass, "chat")?.get(type)?.serializeChat()?.let { json["chat"] = it }
getField(messageTypeClass, "narration")?.get(type)?.nullCast<Decoration>()?.serialize()?.let { json["narration"] = it }
getField(messageTypeClass, "narration")?.get(type)?.nullCast<Any>()?.serializeDecoration()?.let { json["narration"] = it }
this.data[identifier.toString()] = json
}
}
private fun Any.serializeChat(): Map<String, Any?>? {
if (this is Decoration) {
return this.serialize()
if (this::class.java.simpleName == "Decoration") {
return this.serializeDecoration()
}
return getField(this::class.java, "decoration")?.nullCast<Optional<Decoration>>()?.get()?.serialize()
return getField(this::class.java, "decoration")?.get(this)?.nullCast<Optional<Any>>()?.get()?.serializeDecoration()
}
fun Decoration.serialize(): Map<String, Any?> {
fun Any.serializeDecoration(): Map<String, Any?> {
return mapOf(
"translation_key" to translationKey,
"parameters" to parameters.serialize(),
"style" to Util.MAPPER.convertValue<MutableMap<String, Any>>(style, JSON_MAP_TYPE).trimStyle(),
"translation_key" to getField(this::class.java, "translationKey")?.get(this),
"parameters" to getField(this::class.java, "parameters")?.get(this)?.nullCast<Collection<Enum<*>>>()?.serializeParameter(),
"style" to Util.MAPPER.convertValue<MutableMap<String, Any>>(getField(this::class.java, "style")?.get(this), JSON_MAP_TYPE).trimStyle(),
)
}
fun Collection<Parameter>.serialize(): List<Any> {
fun Collection<Enum<*>>.serializeParameter(): List<Any> {
val output: MutableList<Any> = mutableListOf()
for (entry in this) {