port to 1.17

This commit is contained in:
Bixilon 2022-11-12 22:34:45 +01:00
parent 42c3285643
commit c6bebbbd94
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -14,9 +14,10 @@ import de.bixilon.pixlyzer.util.ReflectionUtil.invoke
import de.bixilon.pixlyzer.util.ReflectionUtil.variable
import de.bixilon.pixlyzer.util.Util
import net.minecraft.Bootstrap
import net.minecraft.tag.ItemTags
import net.minecraft.tag.*
import net.minecraft.util.registry.Registry
import java.io.*
import java.lang.reflect.Field
import java.util.*
import java.util.zip.GZIPOutputStream
@ -29,6 +30,13 @@ object PixLyzer {
lateinit var outputDirectory: File
private fun initializeTags(tags: Field) {
val list = tags.get(null)?.variable<Iterable<Any>>("tags") ?: return
for (tag in list) {
getField(tag::class.java, "delegate")!!.set(tag, TAG_CLASS!!.invoke("of", arrayOf(Set::class.java), arrayOf(setOf<Any>())))
}
}
@JvmStatic
fun main(args: Array<String>) {
println("Starting PixLyzer")
@ -69,11 +77,11 @@ object PixLyzer {
Util.forceClassInit(Registry::class.java)
getField(ItemTags::class.java, "REQUIRED_TAGS")?.get(null)?.variable<Iterable<Any>>("tags")?.let {
for (tag in it) {
getField(tag::class.java, "delegate")!!.set(tag, TAG_CLASS!!.invoke("of", arrayOf(Set::class.java), arrayOf(setOf<Any>())))
}
}
getField(FluidTags::class.java, "REQUIRED_TAGS")?.let { initializeTags(it) }
getField(ItemTags::class.java, "REQUIRED_TAGS")?.let { initializeTags(it) }
getField(BlockTags::class.java, "REQUIRED_TAGS")?.let { initializeTags(it) }
getField(GameEventTags::class.java, "REQUIRED_TAGS")?.let { initializeTags(it) }
getField(EntityTypeTags::class.java, "REQUIRED_TAGS")?.let { initializeTags(it) }
println("Class loading done in ${System.currentTimeMillis() - classesLoadStartTime}ms")