Class RegistriesHolder

java.lang.Object
net.mathias2246.buildmc.util.RegistriesHolder

public class RegistriesHolder extends Object
A registry-holder stores a collection of DeferredRegistry instances under a certain key.

BuildMC and Extension plugins should all register static or type instances inside DeferredRegistries.
Storing certain types in registries allows other plugins to access them and add or remove entries before the server finishes loading all plugins.

Other extension plugins can retrieve the BuildMC registry-holder through the api using api.getRegistriesHolder();

  • Method Details

    • get

      @Nullable public @Nullable DeferredRegistry<?> get(@NotNull @NotNull String key)
      Retrieves a DeferredRegistry instance from this holder by its key.
      Returns:
      The DeferredRegistry instance stored under the given key, or null if not existing.
    • getAsType

      @Nullable public <T extends org.bukkit.Keyed> @Nullable DeferredRegistry<T> getAsType(@NotNull @NotNull String key)
      Retrieves a DeferredRegistry instance from this holder by its key.
      Returns:
      The DeferredRegistry instance stored under the given key, or null if not existing.
    • addRegistry

      public <T extends org.bukkit.Keyed> DeferredRegistry<T> addRegistry(@NotNull @NotNull String key, @NotNull @NotNull DeferredRegistry<T> registry)
      Adds a DeferredRegistry to this holder under a certain key.
    • getOptional

      public <T extends org.bukkit.Keyed> Optional<DeferredRegistry<T>> getOptional(@Nullable @Nullable String key)
      Optionally retrieves a DeferredRegistry instance from this holder by its key.

      Usage

      This method optionally returns a DeferredRegistry.
      You could use the returned Optional like this:
      
       holder.getOptional("some_registry")
            .ifPresent(
                (registry) -> {
                    registry.addEntry(...); // You can do anything here
                }
            );