Class BaseRegistry<T extends org.bukkit.Keyed>

java.lang.Object
net.mathias2246.buildmc.util.registry.BaseRegistry<T>
All Implemented Interfaces:
Iterable<T>, org.bukkit.Registry<T>

public class BaseRegistry<T extends org.bukkit.Keyed> extends Object implements org.bukkit.Registry<T>, Iterable<T>
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.bukkit.Registry

    org.bukkit.Registry.SimpleRegistry<T extends Enum<T> & org.bukkit.Keyed>
  • Field Summary

    Fields inherited from interface org.bukkit.Registry

    ADVANCEMENT, ART, ATTRIBUTE, BANNER_PATTERN, BIOME, BLOCK, BOSS_BARS, CAT_VARIANT, CHICKEN_VARIANT, COW_VARIANT, DAMAGE_TYPE, EFFECT, ENCHANTMENT, ENTITY_TYPE, FLUID, FROG_VARIANT, GAME_EVENT, GAME_RULE, INSTRUMENT, ITEM, JUKEBOX_SONG, LOOT_TABLES, MAP_DECORATION_TYPE, MATERIAL, MEMORY_MODULE_TYPE, MENU, PARTICLE_TYPE, PIG_VARIANT, POTION, SOUNDS, STATISTIC, STRUCTURE, STRUCTURE_TYPE, TRIM_MATERIAL, TRIM_PATTERN, VILLAGER_PROFESSION, VILLAGER_TYPE, WOLF_VARIANT, ZOMBIE_NAUTILUS_VARIANT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    addEntries(T... entries)
    Registers multiple new entries.
    addEntry(T entry)
    Registers a new entry under a certain key.
    void
    Removes all the entries from this registry.
    boolean
    contains(@NotNull org.bukkit.NamespacedKey namespacedKey)
     
    get(@NotNull org.bukkit.NamespacedKey namespacedKey)
     
    @NotNull Optional<T>
    getOptional(@NotNull String keyString)
    Optionally retrieves an entry from this registry by its NamespacedKey in a String representation.
    @NotNull Optional<T>
    getOptional(@NotNull org.bukkit.NamespacedKey namespacedKey)
    Optionally retrieves an entry from this registry by its NamespacedKey.
    getOrThrow(@NotNull org.bukkit.NamespacedKey namespacedKey)
    Gets an entry from this registry, or throws an exception
    @NotNull Iterator<T>
     
    Set<org.bukkit.NamespacedKey>
     
    @NotNull Stream<org.bukkit.NamespacedKey>
     
    match(@NotNull String input)
     
    void
    removeEntry(@NotNull org.bukkit.NamespacedKey key)
    Removes an entry from the registry.
    int
     
    @NotNull Stream<T>
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Constructor Details

    • BaseRegistry

      public BaseRegistry()
  • Method Details

    • removeEntry

      public void removeEntry(@NotNull @NotNull org.bukkit.NamespacedKey key)
      Removes an entry from the registry.
      Parameters:
      key - The NamespacedKey of the entry to remove
    • clear

      public void clear()
      Removes all the entries from this registry. The registry will be empty after this.
    • addEntry

      @NotNull public T addEntry(@NotNull T entry)
      Registers a new entry under a certain key.
      Parameters:
      entry - The entry to add
      Returns:
      The entry you tried to add
      Throws:
      NullPointerException - if the key is null
    • addEntries

      @SafeVarargs public final void addEntries(@NotNull T... entries)
      Registers multiple new entries.
      Parameters:
      entries - The entry to add
    • contains

      public boolean contains(@NotNull @NotNull org.bukkit.NamespacedKey namespacedKey)
    • keySet

      public Set<org.bukkit.NamespacedKey> keySet()
    • size

      public int size()
    • get

      @Nullable public T get(@NotNull @NotNull org.bukkit.NamespacedKey namespacedKey)
      Specified by:
      get in interface org.bukkit.Registry<T extends org.bukkit.Keyed>
    • getOrThrow

      @NotNull public T getOrThrow(@NotNull @NotNull org.bukkit.NamespacedKey namespacedKey)
      Gets an entry from this registry, or throws an exception
      Specified by:
      getOrThrow in interface org.bukkit.Registry<T extends org.bukkit.Keyed>
      Parameters:
      namespacedKey - The NamespacedKey of the entry you are trying to retrieve
      Returns:
      The entry under the given NamespacedKey.
      Throws:
      IllegalArgumentException - when no entry is registered under the given NamespacedKey
    • stream

      @NotNull public @NotNull Stream<T> stream()
      Specified by:
      stream in interface org.bukkit.Registry<T extends org.bukkit.Keyed>
      Returns:
      A Stream containing all entries of this registry.
    • keyStream

      @NotNull public @NotNull Stream<org.bukkit.NamespacedKey> keyStream()
      Returns:
      A Stream containing all keys in this registry.
    • iterator

      @NotNull public @NotNull Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T extends org.bukkit.Keyed>
      Returns:
      An Iterator for iterating over all entries inside this registry
    • match

      @Nullable public T match(@NotNull @NotNull String input)
      Specified by:
      match in interface org.bukkit.Registry<T extends org.bukkit.Keyed>
    • getOptional

      @NotNull public @NotNull Optional<T> getOptional(@NotNull @NotNull org.bukkit.NamespacedKey namespacedKey)
      Optionally retrieves an entry from this registry by its NamespacedKey.

      Usage

      This method optionally returns an entry of this registry.
      You could use the returned Optional like this:
      
       registry.getOptional(NamespacedKey.fromString("my_plugin:foo_entry"))
            .ifPresent(
                (entry) -> {
                    entry.doSomething(); // You can do anything here
                }
            );
       
      Parameters:
      namespacedKey - The NamespacedKey of the entry you are trying to retrieve
      Returns:
      The Optional that might contain the entry from the given key
    • getOptional

      @NotNull public @NotNull Optional<T> getOptional(@NotNull @NotNull String keyString)
      Optionally retrieves an entry from this registry by its NamespacedKey in a String representation.

      When using an invalid String representation of a NamespacedKey, an empty Optional will be returned.

      Usage

      This method optionally returns an entry of this registry.
      You could use the returned Optional like this:
      
       registry.getOptional("my_plugin:foo_entry")
            .ifPresent(
                (entry) -> {
                    entry.doSomething(); // You can do anything here
                }
            );
       
      Parameters:
      keyString - The String representation of key of the entry you are trying to retrieve
      Returns:
      The Optional that might contain the entry from the given key