Package net.minecraftforge.registries
Class ForgeRegistryEntry<V extends IForgeRegistryEntry<V>>
java.lang.Object
net.minecraftforge.registries.ForgeRegistryEntry<V>
- All Implemented Interfaces:
IForgeRegistryEntry<V>
- Direct Known Subclasses:
Activity
,Attribute
,BlockBehaviour
,BlockEntityType
,BlockStateProviderType
,ChunkStatus
,DataPackRegistriesTest.Syncable
,DataPackRegistriesTest.Unsyncable
,DataSerializerEntry
,DeferredRegistryTest.Custom
,Enchantment
,EntityType
,Feature
,Fluid
,FoliagePlacerType
,ForgeRegistryEntry.UncheckedRegistryEntry
,ForgeWorldPreset
,Item
,MemoryModuleType
,MenuType
,MobEffect
,Motive
,ParticleType
,PoiType
,Potion
,RecipeBookTestRecipeSerializer
,Schedule
,SensorType
,ShapedRecipe.Serializer
,ShapelessRecipe.Serializer
,SimpleCookingSerializer
,SimpleRecipeSerializer
,SingleItemRecipe.Serializer
,SoundEvent
,StatType
,StructureFeature
,TreeDecoratorType
,UpgradeRecipe.Serializer
,VillagerProfession
,WorldCarver
public abstract class ForgeRegistryEntry<V extends IForgeRegistryEntry<V>>
extends Object
implements IForgeRegistryEntry<V>
Default implementation of IForgeRegistryEntry, this is necessary to reduce redundant code.
This also enables the registrie's ability to manage delegates. Which are automatically updated
if another entry overrides existing ones in the registry.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
This class exists for registry entries which are dynamic (e.g. -
Field Summary
Modifier and TypeFieldDescriptionfinal IRegistryDelegate<V>
private ResourceLocation
private final com.google.common.reflect.TypeToken<V>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription(package private) ResourceLocation
checkRegistryName
(String name) This will assert that the registry name is valid and warn about potential registry overrides It is important as it detects cases where modders unintentionally register objects with the "minecraft" namespace, leading to dangerous errors later.final ResourceLocation
A unique identifier for this entry, if this entry is registered already it will return it's official registry name.Determines the type for this entry, used to look up the correct registry in the global registries list as there can only be one registry per concrete class.final V
setRegistryName
(String name) final V
setRegistryName
(String modID, String name) final V
Sets a unique name for this Item.
-
Field Details
-
token
-
delegate
-
registryName
-
-
Constructor Details
-
ForgeRegistryEntry
public ForgeRegistryEntry()
-
-
Method Details
-
setRegistryName
-
setRegistryName
Description copied from interface:IForgeRegistryEntry
Sets a unique name for this Item. This should be used for uniquely identify the instance of the Item. This is the valid replacement for the atrocious 'getUnlocalizedName().substring(6)' stuff that everyone does. Unlocalized names have NOTHING to do with unique identifiers. As demonstrated by vanilla blocks and items. The supplied name will be prefixed with the currently active mod's modId. If the supplied name already has a prefix that is different, it will be used and a warning will be logged. If a name already exists, or this Item is already registered in a registry, then an IllegalStateException is thrown. Returns 'this' to allow for chaining.- Specified by:
setRegistryName
in interfaceIForgeRegistryEntry<V extends IForgeRegistryEntry<V>>
- Parameters:
name
- Unique registry name- Returns:
- This instance
-
setRegistryName
-
getRegistryName
Description copied from interface:IForgeRegistryEntry
A unique identifier for this entry, if this entry is registered already it will return it's official registry name. Otherwise it will return the name set in setRegistryName(). If neither are valid null is returned.- Specified by:
getRegistryName
in interfaceIForgeRegistryEntry<V extends IForgeRegistryEntry<V>>
- Returns:
- Unique identifier or null.
-
getRegistryType
Description copied from interface:IForgeRegistryEntry
Determines the type for this entry, used to look up the correct registry in the global registries list as there can only be one registry per concrete class.- Specified by:
getRegistryType
in interfaceIForgeRegistryEntry<V extends IForgeRegistryEntry<V>>
- Returns:
- Root registry type.
-
checkRegistryName
This will assert that the registry name is valid and warn about potential registry overrides It is important as it detects cases where modders unintentionally register objects with the "minecraft" namespace, leading to dangerous errors later.- Parameters:
name
- The registry name- Returns:
- A verified "correct" registry name
-