Class RegistryEntry.Reference<T>
- All Implemented Interfaces:
- RegistryEntry<T>
- Direct Known Subclasses:
- RegistryBuilder.LazyReferenceEntry
- Enclosing interface:
- RegistryEntry<T>
There are two types of reference registry entries.
- Stand-alone registry entries are first instantiated by its key, and the value is set when registering the value. This is used by most of the registries.
- Intrusive registry entries are registry entries tied to a specific
 registerable object at instantiation time. When instantiating those, it promises
 that the object is later registered - which, if broken, will result in a crash.
 This is used for Registries.BLOCK,Registries.ITEM,Registries.FLUID,Registries.ENTITY_TYPE, andRegistries.GAME_EVENTregistries. This type exists for historical reasons and is deprecated.
Therefore, it is very important to construct any intrusive-entry type object
 and register at the same time. For example, a mod that conditionally registers an
 Item has to create an instance only if the condition is met.
 (See Registry for a code example.)
 
When a reference registry entry is first instantiated, it only has either the key or the value (depending on the type). They are later filled when registering the entry. Attempting to call methods before those fields are filled can cause a crash. Note that if you are just getting the entry from a registry, this should not be a problem.
- See Also:
- Mappings:
- Namespace - Name - named - net/minecraft/registry/entry/RegistryEntry$Reference- intermediary - net/minecraft/class_6880$class_6883- official - ji$c
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static enumThe types of reference registry entries.Nested classes/interfaces inherited from interface net.minecraft.registry.entry.RegistryEntryRegistryEntry.Direct<T>, RegistryEntry.Reference<T>
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprivate final RegistryEntryOwner<T> private final RegistryEntry.Reference.Typeprivate @Nullable RegistryKey<T> private T
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedReference(RegistryEntry.Reference.Type referenceType, RegistryEntryOwner<T> owner, @Nullable RegistryKey<T> registryKey, T value) 
- 
Method SummaryModifier and TypeMethodDescriptiongetKey()Returns the registry key of this entry, or an empty optional if this is a direct entry.com.mojang.datafixers.util.Either<RegistryKey<T>, T> Returns the object that identifies this registry key.getType()Returns the type (direct or reference) of this registry entry.booleanstatic <T> RegistryEntry.Reference<T> intrusive(RegistryEntryOwner<T> owner, T value) Deprecated.Intrusive holders exist for legacy reasons only.booleanReturns whether this entry is intag.booleanmatches(Predicate<RegistryKey<T>> predicate) Returns whether this entry's key matchespredicate.booleanmatches(RegistryEntry<T> entry) booleanmatchesId(Identifier id) Returns whether the ID of this entry isid.booleanmatchesKey(RegistryKey<T> key) Returns whether the registry key of this entry iskey.booleanownerEquals(RegistryEntryOwner<T> owner) Returns the registry key of this entry.(package private) voidsetRegistryKey(RegistryKey<T> registryKey) (package private) voidsetTags(Collection<TagKey<T>> tags) protected voidstatic <T> RegistryEntry.Reference<T> standAlone(RegistryEntryOwner<T> owner, RegistryKey<T> registryKey) Returns a new stand-alone registry entry.Returns a stream of the tags of this entry, or an empty stream if this is a direct entry.toString()value()Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.registry.entry.RegistryEntrygetIdAsString
- 
Field Details- 
owner- Mappings:
- Namespace - Name - Mixin selector - named - owner- Lnet/minecraft/registry/entry/RegistryEntry$Reference;owner:Lnet/minecraft/registry/entry/RegistryEntryOwner;- intermediary - field_40930- Lnet/minecraft/class_6880$class_6883;field_40930:Lnet/minecraft/class_7876;- official - a- Lji$c;a:Ljl;
 
- 
tags- Mappings:
- Namespace - Name - Mixin selector - named - tags- Lnet/minecraft/registry/entry/RegistryEntry$Reference;tags:Ljava/util/Set;- intermediary - field_36450- Lnet/minecraft/class_6880$class_6883;field_36450:Ljava/util/Set;- official - b- Lji$c;b:Ljava/util/Set;
 
- 
referenceType- Mappings:
- Namespace - Name - Mixin selector - named - referenceType- Lnet/minecraft/registry/entry/RegistryEntry$Reference;referenceType:Lnet/minecraft/registry/entry/RegistryEntry$Reference$Type;- intermediary - field_36451- Lnet/minecraft/class_6880$class_6883;field_36451:Lnet/minecraft/class_6880$class_6883$class_6884;- official - c- Lji$c;c:Lji$c$a;
 
- 
registryKey- Mappings:
- Namespace - Name - Mixin selector - named - registryKey- Lnet/minecraft/registry/entry/RegistryEntry$Reference;registryKey:Lnet/minecraft/registry/RegistryKey;- intermediary - field_36452- Lnet/minecraft/class_6880$class_6883;field_36452:Lnet/minecraft/class_5321;- official - d- Lji$c;d:Lale;
 
- 
value- Mappings:
- Namespace - Name - Mixin selector - named - value- Lnet/minecraft/registry/entry/RegistryEntry$Reference;value:Ljava/lang/Object;- intermediary - field_36453- Lnet/minecraft/class_6880$class_6883;field_36453:Ljava/lang/Object;- official - e- Lji$c;e:Ljava/lang/Object;
 
 
- 
- 
Constructor Details- 
Referenceprotected Reference(RegistryEntry.Reference.Type referenceType, RegistryEntryOwner<T> owner, @Nullable @Nullable RegistryKey<T> registryKey, @Nullable T value) - Mappings:
- Namespace - Name - Mixin selector - named - <init>- Lnet/minecraft/registry/entry/RegistryEntry$Reference;<init>(Lnet/minecraft/registry/entry/RegistryEntry$Reference$Type;Lnet/minecraft/registry/entry/RegistryEntryOwner;Lnet/minecraft/registry/RegistryKey;Ljava/lang/Object;)V- intermediary - <init>- Lnet/minecraft/class_6880$class_6883;<init>(Lnet/minecraft/class_6880$class_6883$class_6884;Lnet/minecraft/class_7876;Lnet/minecraft/class_5321;Ljava/lang/Object;)V- official - <init>- Lji$c;<init>(Lji$c$a;Ljl;Lale;Ljava/lang/Object;)V
 
 
- 
- 
Method Details- 
standAlonepublic static <T> RegistryEntry.Reference<T> standAlone(RegistryEntryOwner<T> owner, RegistryKey<T> registryKey) Returns a new stand-alone registry entry.This should not be called manually. Call Registry.entryOf(net.minecraft.registry.RegistryKey<T>)orRegistry.getEntry(int)instead.Callers are responsible for filling the value later by calling setValue(T).- Returns:
- a new stand-alone registry entry
- Mappings:
- Namespace - Name - Mixin selector - named - standAlone- Lnet/minecraft/registry/entry/RegistryEntry$Reference;standAlone(Lnet/minecraft/registry/entry/RegistryEntryOwner;Lnet/minecraft/registry/RegistryKey;)Lnet/minecraft/registry/entry/RegistryEntry$Reference;- intermediary - method_40234- Lnet/minecraft/class_6880$class_6883;method_40234(Lnet/minecraft/class_7876;Lnet/minecraft/class_5321;)Lnet/minecraft/class_6880$class_6883;- official - a- Lji$c;a(Ljl;Lale;)Lji$c;
 
- 
intrusive@Deprecated public static <T> RegistryEntry.Reference<T> intrusive(RegistryEntryOwner<T> owner, @Nullable T value) Deprecated.Intrusive holders exist for legacy reasons only.Returns a new intrusive registry entry.This should not be called manually. Call Registry.entryOf(net.minecraft.registry.RegistryKey<T>)orRegistry.getEntry(int)instead.Callers are responsible for filling the key later by calling setRegistryKey(net.minecraft.registry.RegistryKey<T>).- Returns:
- a new intrusive registry entry
- Mappings:
- Namespace - Name - Mixin selector - named - intrusive- Lnet/minecraft/registry/entry/RegistryEntry$Reference;intrusive(Lnet/minecraft/registry/entry/RegistryEntryOwner;Ljava/lang/Object;)Lnet/minecraft/registry/entry/RegistryEntry$Reference;- intermediary - method_40233- Lnet/minecraft/class_6880$class_6883;method_40233(Lnet/minecraft/class_7876;Ljava/lang/Object;)Lnet/minecraft/class_6880$class_6883;- official - a- Lji$c;a(Ljl;Ljava/lang/Object;)Lji$c;
 
- 
registryKeyReturns the registry key of this entry.- Returns:
- the registry key of this entry
- Throws:
- IllegalStateException- if this is an intrusive entry and it is not initialized yet
- Mappings:
- Namespace - Name - Mixin selector - named - registryKey- Lnet/minecraft/registry/entry/RegistryEntry$Reference;registryKey()Lnet/minecraft/registry/RegistryKey;- intermediary - method_40237- Lnet/minecraft/class_6880$class_6883;method_40237()Lnet/minecraft/class_5321;- official - h- Lji$c;h()Lale;
 
- 
value- Specified by:
- valuein interface- RegistryEntry<T>
- Mappings:
- Namespace - Name - Mixin selector - named - value- Lnet/minecraft/registry/entry/RegistryEntry;value()Ljava/lang/Object;- intermediary - comp_349- Lnet/minecraft/class_6880;comp_349()Ljava/lang/Object;- official - a- Lji;a()Ljava/lang/Object;
 
- 
matchesIdReturns whether the ID of this entry isid.This always returns falsefor direct entries.- Specified by:
- matchesIdin interface- RegistryEntry<T>
- Returns:
- whether the ID of this entry is id
- Mappings:
- Namespace - Name - Mixin selector - named - matchesId- Lnet/minecraft/registry/entry/RegistryEntry;matchesId(Lnet/minecraft/util/Identifier;)Z- intermediary - method_40226- Lnet/minecraft/class_6880;method_40226(Lnet/minecraft/class_2960;)Z- official - a- Lji;a(Lalf;)Z
 
- 
matchesKeyReturns whether the registry key of this entry iskey.This always returns falsefor direct entries.- Specified by:
- matchesKeyin interface- RegistryEntry<T>
- Returns:
- whether the registry key of this entry is key
- Mappings:
- Namespace - Name - Mixin selector - named - matchesKey- Lnet/minecraft/registry/entry/RegistryEntry;matchesKey(Lnet/minecraft/registry/RegistryKey;)Z- intermediary - method_40225- Lnet/minecraft/class_6880;method_40225(Lnet/minecraft/class_5321;)Z- official - a- Lji;a(Lale;)Z
 
- 
isInReturns whether this entry is intag.This always returns falsefor direct entries, since tags are managed by a registry.- Specified by:
- isInin interface- RegistryEntry<T>
- Returns:
- whether this entry is in tag
- Mappings:
- Namespace - Name - Mixin selector - named - isIn- Lnet/minecraft/registry/entry/RegistryEntry;isIn(Lnet/minecraft/registry/tag/TagKey;)Z- intermediary - method_40220- Lnet/minecraft/class_6880;method_40220(Lnet/minecraft/class_6862;)Z- official - a- Lji;a(Laxf;)Z
 
- 
matches- Specified by:
- matchesin interface- RegistryEntry<T>
- Mappings:
- Namespace - Name - Mixin selector - named - matches- Lnet/minecraft/registry/entry/RegistryEntry;matches(Lnet/minecraft/registry/entry/RegistryEntry;)Z- intermediary - method_55838- Lnet/minecraft/class_6880;method_55838(Lnet/minecraft/class_6880;)Z- official - a- Lji;a(Lji;)Z
 
- 
matchesReturns whether this entry's key matchespredicate.This always returns falsefor direct entries.- Specified by:
- matchesin interface- RegistryEntry<T>
- Returns:
- whether this entry's key matches predicate
- Mappings:
- Namespace - Name - Mixin selector - named - matches- Lnet/minecraft/registry/entry/RegistryEntry;matches(Ljava/util/function/Predicate;)Z- intermediary - method_40224- Lnet/minecraft/class_6880;method_40224(Ljava/util/function/Predicate;)Z- official - a- Lji;a(Ljava/util/function/Predicate;)Z
 
- 
ownerEquals- Specified by:
- ownerEqualsin interface- RegistryEntry<T>
- Mappings:
- Namespace - Name - Mixin selector - named - ownerEquals- Lnet/minecraft/registry/entry/RegistryEntry;ownerEquals(Lnet/minecraft/registry/entry/RegistryEntryOwner;)Z- intermediary - method_46745- Lnet/minecraft/class_6880;method_46745(Lnet/minecraft/class_7876;)Z- official - a- Lji;a(Ljl;)Z
 
- 
getKeyOrValueReturns the object that identifies this registry key.For direct entries, this is the held value, and for reference entries, this is the key of the entry. - Specified by:
- getKeyOrValuein interface- RegistryEntry<T>
- Returns:
- the object that identifies this registry key
- Mappings:
- Namespace - Name - Mixin selector - named - getKeyOrValue- Lnet/minecraft/registry/entry/RegistryEntry;getKeyOrValue()Lcom/mojang/datafixers/util/Either;- intermediary - method_40229- Lnet/minecraft/class_6880;method_40229()Lcom/mojang/datafixers/util/Either;- official - d- Lji;d()Lcom/mojang/datafixers/util/Either;
 
- 
getKeyReturns the registry key of this entry, or an empty optional if this is a direct entry.- Specified by:
- getKeyin interface- RegistryEntry<T>
- Returns:
- the registry key of this entry, or an empty optional if this is a direct entry
- Mappings:
- Namespace - Name - Mixin selector - named - getKey- Lnet/minecraft/registry/entry/RegistryEntry;getKey()Ljava/util/Optional;- intermediary - method_40230- Lnet/minecraft/class_6880;method_40230()Ljava/util/Optional;- official - e- Lji;e()Ljava/util/Optional;
 
- 
getTypeReturns the type (direct or reference) of this registry entry.This is different from the types of reference registry entries, i.e. stand-alone or intrusive. - Specified by:
- getTypein interface- RegistryEntry<T>
- Returns:
- the type (direct or reference) of this registry entry
- Mappings:
- Namespace - Name - Mixin selector - named - getType- Lnet/minecraft/registry/entry/RegistryEntry;getType()Lnet/minecraft/registry/entry/RegistryEntry$Type;- intermediary - method_40231- Lnet/minecraft/class_6880;method_40231()Lnet/minecraft/class_6880$class_6882;- official - f- Lji;f()Lji$b;
 
- 
hasKeyAndValuepublic boolean hasKeyAndValue()- Specified by:
- hasKeyAndValuein interface- RegistryEntry<T>
- Mappings:
- Namespace - Name - Mixin selector - named - hasKeyAndValue- Lnet/minecraft/registry/entry/RegistryEntry;hasKeyAndValue()Z- intermediary - method_40227- Lnet/minecraft/class_6880;method_40227()Z- official - b- Lji;b()Z
 
- 
setRegistryKey- Mappings:
- Namespace - Name - Mixin selector - named - setRegistryKey- Lnet/minecraft/registry/entry/RegistryEntry$Reference;setRegistryKey(Lnet/minecraft/registry/RegistryKey;)V- intermediary - method_45917- Lnet/minecraft/class_6880$class_6883;method_45917(Lnet/minecraft/class_5321;)V- official - b- Lji$c;b(Lale;)V
 
- 
setValue- Mappings:
- Namespace - Name - Mixin selector - named - setValue- Lnet/minecraft/registry/entry/RegistryEntry$Reference;setValue(Ljava/lang/Object;)V- intermediary - method_45918- Lnet/minecraft/class_6880$class_6883;method_45918(Ljava/lang/Object;)V- official - b- Lji$c;b(Ljava/lang/Object;)V
 
- 
setTags- Mappings:
- Namespace - Name - Mixin selector - named - setTags- Lnet/minecraft/registry/entry/RegistryEntry$Reference;setTags(Ljava/util/Collection;)V- intermediary - method_40235- Lnet/minecraft/class_6880$class_6883;method_40235(Ljava/util/Collection;)V- official - a- Lji$c;a(Ljava/util/Collection;)V
 
- 
streamTagsReturns a stream of the tags of this entry, or an empty stream if this is a direct entry.- Specified by:
- streamTagsin interface- RegistryEntry<T>
- Returns:
- a stream of the tags of this entry, or an empty stream if this is a direct entry
- Mappings:
- Namespace - Name - Mixin selector - named - streamTags- Lnet/minecraft/registry/entry/RegistryEntry;streamTags()Ljava/util/stream/Stream;- intermediary - method_40228- Lnet/minecraft/class_6880;method_40228()Ljava/util/stream/Stream;- official - c- Lji;c()Ljava/util/stream/Stream;
 
- 
toString
 
-