Class ListDeferredRegistry<V>

java.lang.Object
org.geysermc.geyser.registry.ListDeferredRegistry<V>

public class ListDeferredRegistry<V> extends Object
  • Constructor Details

  • Method Details

    • get

      public @Nullable V get(int index)
      Returns the value registered by the given index.
      Parameters:
      index - the index
      Returns:
      the value registered by the given index.
    • getOrDefault

      public V getOrDefault(int index, V defaultValue)
      Returns the value registered by the given index or the default value specified if null.
      Parameters:
      index - the index
      defaultValue - the default value
      Returns:
      the value registered by the given key or the default value specified if null.
    • register

      public V register(int index, V value)
      Registers a new value into this registry with the given index.
      Parameters:
      index - the index
      value - the value
      Returns:
      a new value into this registry with the given index.
    • registerWithAnyIndex

      public V registerWithAnyIndex(int index, V value, V defaultValue)
      Registers a new value into this registry with the given index, even if this value would normally be outside the range of a list.
      Parameters:
      index - the index
      value - the value
      defaultValue - the default value to fill empty spaces in the registry with.
      Returns:
      a new value into this registry with the given index.
    • freeze

      public void freeze()
      Mark this registry as unsuitable for new additions. The backing list will then be optimized for storage.
    • create

      public static <I, V> ListDeferredRegistry<V> create(Function<RegistryLoader<I,List<V>>,ListRegistry<V>> registryLoader, RegistryLoader<I,List<V>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      registryLoader - the registry loader
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • create

      public static <I, V> ListDeferredRegistry<V> create(Function<RegistryLoader<I,List<V>>,ListRegistry<V>> registryLoader, Supplier<RegistryLoader<I,List<V>>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      registryLoader - the registry loader
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • create

      public static <I, V> ListDeferredRegistry<V> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<List<V>,ListRegistry<V>> registryInitializer, RegistryLoader<I,List<V>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      registryInitializer - the registry initializer
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • create

      public static <I, V> ListDeferredRegistry<V> create(I input, org.geysermc.geyser.registry.DeferredRegistry.RegistryInitializer<List<V>,ListRegistry<V>> registryInitializer, Supplier<RegistryLoader<I,List<V>>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      registryInitializer - the registry initializer
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • create

      public static <I, V> ListDeferredRegistry<V> create(I input, RegistryLoader<I,List<V>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • create

      public static <I, V> ListDeferredRegistry<V> create(I input, Supplier<RegistryLoader<I,List<V>>> deferredLoader)
      Creates a new deferred registry.
      Type Parameters:
      I - the input type
      Parameters:
      deferredLoader - the deferred loader
      Returns:
      the new deferred registry
    • backingRegistry

      protected ListRegistry<V> backingRegistry()
    • get

      public List<V> 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

      public void set(List<V> mappings)
    • register

      public void register(Consumer<List<V>> consumer)
      Registers what is specified in the given Consumer into 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.