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 b4b50fe..48248eb 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/DimensionGenerator.kt @@ -141,14 +141,20 @@ object DimensionGenerator : Generator( dimensionRegistry?.get(null)?.let { check(it is Registry<*>) val registryGetKeyMethod = Registry::class.java.getDeclaredMethod("getId", Object::class.java) - val dimensionTypeGetIdMethod = try { + val idMethod1 = try { DimensionType::class.java.getDeclaredMethod("getRawId") } catch (exception: Throwable) { + null + } + val idMethod2 = try { it::class.java.getDeclaredMethod("getRawId", Object::class.java) + } catch (exception: Throwable) { + null } for (entry in it) { check(entry is DimensionType) - types.add(Triple(registryGetKeyMethod.invoke(it, entry) as Identifier, dimensionTypeGetIdMethod.invoke(it, entry) as Int, entry)) + val id1 = idMethod1?.invoke(entry) ?: idMethod2?.invoke(it, entry) ?: throw IllegalStateException("Can not get dimension id for $entry") + types.add(Triple(registryGetKeyMethod.invoke(it, entry) as Identifier, id1 as Int, entry)) } } } catch (exception: Exception) {