diff --git a/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java b/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java index 77daf25a..5306d96d 100644 --- a/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java +++ b/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java @@ -136,6 +136,7 @@ public class RegistriesImpl { } public static class RegistryProviderImpl implements Registries.RegistryProvider { + private static final Map>, Registrar> CUSTOM_REGS = new HashMap<>(); private final String modId; private final Supplier eventBus; private final Map>, Data> registry = new HashMap<>(); @@ -170,6 +171,7 @@ public class RegistriesImpl { if (registry == null) { Registry ts = (Registry) Registry.REGISTRY.get(registryKey.location()); if (ts == null) ts = (Registry) BuiltinRegistries.REGISTRY.get(registryKey.location()); + if (ts == null) ts = (Registry) RegistryProviderImpl.CUSTOM_REGS.get(registryKey); if (ts == null) { throw new IllegalArgumentException("Registry " + registryKey + " does not exist!"); } else { @@ -374,6 +376,7 @@ public class RegistriesImpl { registrar.onRegister(); }); provider.builders.add(entry); + RegistryProviderImpl.CUSTOM_REGS.put(registrar.key(), registrar); return registrar; }