diff --git a/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt b/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt index 0c373f6..98ff12c 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/PixLyzer.kt @@ -18,7 +18,7 @@ import java.util.zip.GZIPOutputStream object PixLyzer { private val startTime = System.currentTimeMillis() - val ENTITY_META_DATA_MAPPING = Util.readJsonResource("entities_data_mappings.json") + val ENTITY_DATA_MAPPING = Util.readJsonResource("entities_data_mappings.json") @JvmStatic diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt index 79e2ac7..427205e 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt @@ -134,22 +134,25 @@ object DimensionGenerator : Generator( private fun getDimensions(): MutableSet> { val types: MutableSet> = mutableSetOf() - if (types.isEmpty()) { - val dimensionRegistry = getField(Registry::class.java, "DIMENSION", "DIMENSION_TYPE") - try { - dimensionRegistry?.get(null)?.let { - check(it is Registry<*>) - val registryGetKeyMethod = Registry::class.java.getDeclaredMethod("getId", Object::class.java) - val dimensionTypeGetIdMethod = DimensionType::class.java.getDeclaredMethod("getRawId") - for (entry in it) { - check(entry is DimensionType) - types.add(Triple(registryGetKeyMethod.invoke(it, entry) as Identifier, dimensionTypeGetIdMethod.invoke(entry) as Int, entry)) + val dimensionRegistry = getField(getClass("net.minecraft.util.registry.BuiltinRegistries"), "DIMENSION_TYPE") ?: getField(Registry::class.java, "DIMENSION", "DIMENSION_TYPE") - } + try { + dimensionRegistry?.get(null)?.let { + check(it is Registry<*>) + val registryGetKeyMethod = Registry::class.java.getDeclaredMethod("getId", Object::class.java) + val dimensionTypeGetIdMethod = try { + DimensionType::class.java.getDeclaredMethod("getRawId") + } catch (exception: Throwable) { + it::class.java.getDeclaredMethod("getRawId", Object::class.java) + } + for (entry in it) { + check(entry is DimensionType) + types.add(Triple(registryGetKeyMethod.invoke(it, entry) as Identifier, dimensionTypeGetIdMethod.invoke(it, entry) as Int, entry)) } - } catch (exception: Exception) { } + } catch (exception: Exception) { + exception.printStackTrace() } if (types.isEmpty()) { diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt index ee0bad7..6b13967 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt @@ -188,7 +188,7 @@ object EntityGenerator : Generator( field.isAccessible = true val dataAccessor: TrackedData<*> = field.get(null) as TrackedData<*> val className = correctClassName(clazz.simpleName) - val entityClazzData = PixLyzer.ENTITY_META_DATA_MAPPING[className]?.mapCast() ?: error("Can not find entity: $className, requires field ${field.name}") + val entityClazzData = PixLyzer.ENTITY_DATA_MAPPING[className]?.mapCast() ?: error("Can not find entity: $className, requires field ${field.name}") val entityData = entityClazzData["data"]!!.mapCast()!! val realFieldName = entityData[field.name]?.toString() ?: error("Can not find meta data field ${field.name} for ${clazz.simpleName}") json[realFieldName] = dataAccessor.id