Package org.geysermc.geyser.registry
Class DeferredRegistry<M>
java.lang.Object
org.geysermc.geyser.registry.DeferredRegistry<M>
- Type Parameters:
M- the value being held by the registry
A deferred registry is a registry that is not loaded until it is needed.
This is useful for registries that are not needed until after other parts
of the lifecycle have been completed.
This class is slightly different from other registries in that it acts as a wrapper around another registry. This is to allow for any kind of registry type to be deferred.
-
Method Summary
Modifier and TypeMethodDescriptionstatic <I,M> DeferredRegistry<M> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<M> registryInitializer, Supplier<RegistryLoader<I, M>> deferredLoader) Creates a new deferred registry.static <I,M> DeferredRegistry<M> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<M> registryInitializer, RegistryLoader<I, M> deferredLoader) Creates a new deferred registry.static <I,M> DeferredRegistry<M> create(Function<RegistryLoader<I, M>, Registry<M>> registryLoader, Supplier<RegistryLoader<I, M>> deferredLoader) Creates a new deferred registry.static <I,M> DeferredRegistry<M> create(Function<RegistryLoader<I, M>, Registry<M>> registryLoader, RegistryLoader<I, M> deferredLoader) Creates a new deferred registry.get()Gets the underlying value held by this registry.voidload()Loads the registry.booleanloaded()Whether this registry was loaded.voidRegisters what is specified in the givenConsumerinto the underlying value.void
-
Method Details
-
get
Gets the underlying value held by this registry.- Returns:
- the underlying value held by this registry
- Throws:
IllegalStateException- if this deferred registry has not been loaded yet
-
set
-
register
Registers what is specified in the givenConsumerinto the underlying value.- Parameters:
consumer- the consumer- Throws:
IllegalStateException- if this deferred registry has not been loaded yet
-
load
public void load()Loads the registry. -
loaded
public boolean loaded()Whether this registry was loaded. -
create
public static <I,M> DeferredRegistry<M> create(Function<RegistryLoader<I, M>, Registry<M>> registryLoader, RegistryLoader<I, M> deferredLoader) Creates a new deferred registry.- Type Parameters:
I- the input typeM- the registry type- Parameters:
registryLoader- the registry loaderdeferredLoader- the deferred loader- Returns:
- the new deferred registry
-
create
public static <I,M> DeferredRegistry<M> create(Function<RegistryLoader<I, M>, Registry<M>> registryLoader, Supplier<RegistryLoader<I, M>> deferredLoader) Creates a new deferred registry.- Type Parameters:
I- the input typeM- the registry type- Parameters:
registryLoader- the registry loaderdeferredLoader- the deferred loader- Returns:
- the new deferred registry
-
create
public static <I,M> DeferredRegistry<M> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<M> registryInitializer, RegistryLoader<I, M> deferredLoader) Creates a new deferred registry.- Type Parameters:
I- the input typeM- the registry type- Parameters:
registryInitializer- the registry initializerdeferredLoader- the deferred loader- Returns:
- the new deferred registry
-
create
public static <I,M> DeferredRegistry<M> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<M> registryInitializer, Supplier<RegistryLoader<I, M>> deferredLoader) Creates a new deferred registry.- Type Parameters:
I- the input typeM- the registry type- Parameters:
registryInitializer- the registry initializerdeferredLoader- the deferred loader- Returns:
- the new deferred registry
-