Update reflection for >=1.20.1 NMS

This commit is contained in:
Roman Zhuravlev 2025-09-03 19:42:50 +05:00
parent 70a56e345c
commit c94a032bea

View file

@ -53,6 +53,7 @@ public final class RegistryReflection {
); );
private static final Constructor<?> RESOURCE_LOCATION_CTR = CraftBukkitReflection.needConstructor( private static final Constructor<?> RESOURCE_LOCATION_CTR = CraftBukkitReflection.needConstructor(
RESOURCE_LOCATION_CLASS, RESOURCE_LOCATION_CLASS,
String.class,
String.class String.class
); );
@ -60,6 +61,8 @@ public final class RegistryReflection {
} }
static { static {
RESOURCE_LOCATION_CTR.setAccessible(true);
Class<?> registryClass; Class<?> registryClass;
if (CraftBukkitReflection.MAJOR_REVISION < 17) { if (CraftBukkitReflection.MAJOR_REVISION < 17) {
REGISTRY_REGISTRY = null; REGISTRY_REGISTRY = null;
@ -122,7 +125,11 @@ public final class RegistryReflection {
public static Object createResourceLocation(final String str) { public static Object createResourceLocation(final String str) {
try { try {
return RESOURCE_LOCATION_CTR.newInstance(str); String[] parts = str.split(":", 2);
if (parts.length > 1) {
return RESOURCE_LOCATION_CTR.newInstance(parts[0], parts[1]);
}
return RESOURCE_LOCATION_CTR.newInstance("minecraft", parts[0]);
} catch (final ReflectiveOperationException e) { } catch (final ReflectiveOperationException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }