Class Identifier
- All Implemented Interfaces:
- Comparable<Identifier>
- Direct Known Subclasses:
- ModelIdentifier
equals(java.lang.Object) method, not ==.
 Format
Identifiers are formatted as <namespace>:<path>. If the namespace and colon
 are omitted, the namespace defaults to "minecraft".
 
The namespace and path must contain only ASCII lowercase letters (
 [a-z]), ASCII digits ([0-9]), or the characters _, ., and
 -.  The path can also contain the standard path separator 
 /. Uppercase letters cannot be used. isValid(java.lang.String) can be used to check whether a
 string is a valid identifier. When handling externally provided identifiers, it should
 either validate or use tryParse(java.lang.String) instead of the constructor. Another common
 mistake is using a formatted string with %d or %f to construct an
 identifier without specifying the locate explicitly, as they are not guaranteed to be
 ASCII digits in certain locales. Use String.format(Locale, String, Object[])
 with Locale.ROOT instead of String.formatted(java.lang.Object...).
 
Namespace
The namespace of an identifier identifies the origin of the thing. For example, two mods to the game could both add an item with the ID "orange"; the namespace is used to differentiate the two. (The convention is to use the ID assigned to the mod as the namespace.)
A namespace only determines the source of an identifier, and does not determine its purpose; so long as
 two identifiers are used for different purposes, they can share the namespace and path.
 For example, the identifier minecraft:dirt is shared by blocks and items.
 There is no need to change the identifier to, say, minecraft_block:dirt or
 minecraft_item:dirt.
 
Several namespaces are reserved for vanilla use. While those identifiers can be used for
 referencing and overwriting vanilla things, it is highly discouraged to use them to
 identify your own, new things. For example, a modded block or a new biome added by
 data packs should not use the reserved namespaces, but it's fine to use them when
 modifying an existing biome under that namespace. The reserved namespaces are
 "minecraft", brigadier, and "realms".
 "minecraft" is also the default namespace used when no namespace is
 provided.
 
Path
The path of the identifier identifies the thing within the namespace, such as between different items from the same mod. Additionally, this is sometimes used to refer to a file path, such as in textures.
Creation
There are many ways to create a new identifier:
- Identifier(java.lang.String)creates an identifier from a string in- <namespace>:<path>format. If the colon is missing, the created identifier has the namespace "minecraft" and the argument is used as the path. When passed an invalid value, this throws- InvalidIdentifierException.
- Identifier(java.lang.String,java.lang.String)creates an identifier from namespace and path. When passed an invalid value, this throws- InvalidIdentifierException.
- tryParse(java.lang.String)creates an identifier from a string in- <namespace>:<path>format. If the colon is missing, the created identifier has the namespace "minecraft" and the argument is used as the path. When passed an invalid value, this returns- null.
- of(java.lang.String, java.lang.String)creates an identifier from namespace and path. When passed an invalid value, this returns- null.
- fromCommandInput(com.mojang.brigadier.StringReader)reads an identifier from command input reader. When an invalid value is read, this throws- COMMAND_EXCEPTION.
- Identifier.Serializeris a serializer for Gson.
- CODECcan be used to serialize and deserialize an identifier using DataFixerUpper.
Using Identifier
Identifiers identify several objects in the game. Registry holds objects, such as blocks and items, that are
 identified by an identifier. Textures are also identified using an identifier; such
 an identifier is represented as a file path with an extension, such as 
 minecraft:textures/entity/pig/pig.png.
 
The string representation of the identifier (<namespace>:<path>) can be
 obtained by calling toString(). This always includes the namespace. An identifier
 can be converted to a translation key using toTranslationKey(String) method.
 
RegistryKey
Identifier is not type-aware; minecraft:tnt could refer to a TNT block, a TNT
 item, or a TNT entity. To identify a registered object uniquely, RegistryKey can be used. A registry key is a combination
 of the registry's identifier and the object's identifier.
- Mappings:
- Namespace - Name - official - acq- intermediary - net/minecraft/class_2960- named - net/minecraft/util/Identifier
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static interfaceA piece of extra data that a subclass may attach to an identifier.static class
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final com.mojang.serialization.Codec<Identifier>private static final com.mojang.brigadier.exceptions.SimpleCommandExceptionTypestatic final Stringprivate final Stringstatic final charprivate final Stringstatic final String
- 
Constructor SummaryConstructorsModifierConstructorDescriptionIdentifier(String id) Takes a string of the form<namespace>:<path>, for exampleminecraft:iron_ingot.privateIdentifier(String[] id) Identifier(String namespace, String path) protectedIdentifier(String namespace, String path, @Nullable Identifier.ExtraData extraData) 
- 
Method SummaryModifier and TypeMethodDescriptionintcompareTo(Identifier identifier) booleanstatic IdentifierfromCommandInput(com.mojang.brigadier.StringReader reader) Returns the namespace of the identifier.getPath()Returns the path of the identifier.inthashCode()static booleanisCharValid(char c) private static booleanisNamespaceCharacterValid(char character) Returns whethercharacteris valid for use in identifier namespaces.private static booleanisNamespaceValid(String namespace) Returns whethernamespacecan be used as an identifier's namespace.static booleanisPathCharacterValid(char character) Returns whethercharacteris valid for use in identifier paths.private static booleanisPathValid(String path) Returns whetherpathcan be used as an identifier's path.static booleanReturns whetheridcan be parsed as an identifier.static @Nullable IdentifierReturns an identifier from the providednamespaceandpath, ornullif either argument is invalid.protected static String[]static IdentifierReturns the short translation key, with the default namespace omitted if present.toString()Returns the long translation key, without omitting the default namespace.toTranslationKey(String prefix) Returns the long translation key prefixed withprefixand a dot.toTranslationKey(String prefix, String suffix) Returns the long translation key prefixed withprefixand a dot, and suffixed with a dot andsuffix.Returns the string representation of the identifier with slashes and colons replaced with underscores.static @Nullable IdentifierReturnsidparsed as an identifier, ornullif it cannot be parsed.static com.mojang.serialization.DataResult<Identifier>private static StringvalidateNamespace(String namespace, String path) private static StringvalidatePath(String namespace, String path) withPath(UnaryOperator<String> pathFunction) withPrefixedPath(String prefix) withSuffixedPath(String suffix) 
- 
Field Details- 
CODEC- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a:Lcom/mojang/serialization/Codec;- intermediary - field_25139- Lnet/minecraft/class_2960;field_25139:Lcom/mojang/serialization/Codec;- named - CODEC- Lnet/minecraft/util/Identifier;CODEC:Lcom/mojang/serialization/Codec;
 
- 
COMMAND_EXCEPTIONprivate static final com.mojang.brigadier.exceptions.SimpleCommandExceptionType COMMAND_EXCEPTION- Mappings:
- Namespace - Name - Mixin selector - official - e- Lacq;e:Lcom/mojang/brigadier/exceptions/SimpleCommandExceptionType;- intermediary - field_13354- Lnet/minecraft/class_2960;field_13354:Lcom/mojang/brigadier/exceptions/SimpleCommandExceptionType;- named - COMMAND_EXCEPTION- Lnet/minecraft/util/Identifier;COMMAND_EXCEPTION:Lcom/mojang/brigadier/exceptions/SimpleCommandExceptionType;
 
- 
NAMESPACE_SEPARATORpublic static final char NAMESPACE_SEPARATOR- See Also:
- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b:C- intermediary - field_33380- Lnet/minecraft/class_2960;field_33380:C- named - NAMESPACE_SEPARATOR- Lnet/minecraft/util/Identifier;NAMESPACE_SEPARATOR:C
 
- 
DEFAULT_NAMESPACE- See Also:
- Mappings:
- Namespace - Name - Mixin selector - official - c- Lacq;c:Ljava/lang/String;- intermediary - field_33381- Lnet/minecraft/class_2960;field_33381:Ljava/lang/String;- named - DEFAULT_NAMESPACE- Lnet/minecraft/util/Identifier;DEFAULT_NAMESPACE:Ljava/lang/String;
 
- 
REALMS_NAMESPACE- See Also:
- Mappings:
- Namespace - Name - Mixin selector - official - d- Lacq;d:Ljava/lang/String;- intermediary - field_33382- Lnet/minecraft/class_2960;field_33382:Ljava/lang/String;- named - REALMS_NAMESPACE- Lnet/minecraft/util/Identifier;REALMS_NAMESPACE:Ljava/lang/String;
 
- 
namespace- Mappings:
- Namespace - Name - Mixin selector - official - f- Lacq;f:Ljava/lang/String;- intermediary - field_13353- Lnet/minecraft/class_2960;field_13353:Ljava/lang/String;- named - namespace- Lnet/minecraft/util/Identifier;namespace:Ljava/lang/String;
 
- 
path- Mappings:
- Namespace - Name - Mixin selector - official - g- Lacq;g:Ljava/lang/String;- intermediary - field_13355- Lnet/minecraft/class_2960;field_13355:Ljava/lang/String;- named - path- Lnet/minecraft/util/Identifier;path:Ljava/lang/String;
 
 
- 
- 
Constructor Details- 
Identifierprotected Identifier(String namespace, String path, @Nullable @Nullable Identifier.ExtraData extraData) - Mappings:
- Namespace - Name - Mixin selector - official - <init>- Lacq;<init>(Ljava/lang/String;Ljava/lang/String;Lacq$a;)V- intermediary - <init>- Lnet/minecraft/class_2960;<init>(Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/class_2960$class_7658;)V- named - <init>- Lnet/minecraft/util/Identifier;<init>(Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/util/Identifier$ExtraData;)V
 
- 
Identifier- Mappings:
- Namespace - Name - Mixin selector - official - <init>- Lacq;<init>(Ljava/lang/String;Ljava/lang/String;)V- intermediary - <init>- Lnet/minecraft/class_2960;<init>(Ljava/lang/String;Ljava/lang/String;)V- named - <init>- Lnet/minecraft/util/Identifier;<init>(Ljava/lang/String;Ljava/lang/String;)V
 
- 
Identifier- Mappings:
- Namespace - Name - Mixin selector - official - <init>- Lacq;<init>([Ljava/lang/String;)V- intermediary - <init>- Lnet/minecraft/class_2960;<init>([Ljava/lang/String;)V- named - <init>- Lnet/minecraft/util/Identifier;<init>([Ljava/lang/String;)V
 
- 
IdentifierTakes a string of the form <namespace>:<path>, for exampleminecraft:iron_ingot.The string will be split (on the :) into an identifier with the specified path and namespace. Prefer using theIdentifier(java.lang.String, java.lang.String)constructor that takes the namespace and path as individual parameters to avoid mistakes.- Throws:
- InvalidIdentifierException- if the string cannot be parsed as an identifier.
- Mappings:
- Namespace - Name - Mixin selector - official - <init>- Lacq;<init>(Ljava/lang/String;)V- intermediary - <init>- Lnet/minecraft/class_2960;<init>(Ljava/lang/String;)V- named - <init>- Lnet/minecraft/util/Identifier;<init>(Ljava/lang/String;)V
 
 
- 
- 
Method Details- 
splitOn- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Ljava/lang/String;C)Lacq;- intermediary - method_12838- Lnet/minecraft/class_2960;method_12838(Ljava/lang/String;C)Lnet/minecraft/class_2960;- named - splitOn- Lnet/minecraft/util/Identifier;splitOn(Ljava/lang/String;C)Lnet/minecraft/util/Identifier;
 
- 
tryParseReturnsidparsed as an identifier, ornullif it cannot be parsed.- Returns:
- idparsed as an identifier, or- nullif it cannot be parsed
- See Also:
- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Ljava/lang/String;)Lacq;- intermediary - method_12829- Lnet/minecraft/class_2960;method_12829(Ljava/lang/String;)Lnet/minecraft/class_2960;- named - tryParse- Lnet/minecraft/util/Identifier;tryParse(Ljava/lang/String;)Lnet/minecraft/util/Identifier;
 
- 
ofReturns an identifier from the providednamespaceandpath, ornullif either argument is invalid.- Returns:
- an identifier from the provided namespaceandpath, ornullif either argument is invalid
- See Also:
- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Ljava/lang/String;Ljava/lang/String;)Lacq;- intermediary - method_43902- Lnet/minecraft/class_2960;method_43902(Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/class_2960;- named - of- Lnet/minecraft/util/Identifier;of(Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/util/Identifier;
 
- 
split- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b(Ljava/lang/String;C)[Ljava/lang/String;- intermediary - method_12830- Lnet/minecraft/class_2960;method_12830(Ljava/lang/String;C)[Ljava/lang/String;- named - split- Lnet/minecraft/util/Identifier;split(Ljava/lang/String;C)[Ljava/lang/String;
 
- 
validate- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;- intermediary - method_29186- Lnet/minecraft/class_2960;method_29186(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;- named - validate- Lnet/minecraft/util/Identifier;validate(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;
 
- 
getPathReturns the path of the identifier.- Returns:
- the path of the identifier
- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a()Ljava/lang/String;- intermediary - method_12832- Lnet/minecraft/class_2960;method_12832()Ljava/lang/String;- named - getPath- Lnet/minecraft/util/Identifier;getPath()Ljava/lang/String;
 
- 
getNamespaceReturns the namespace of the identifier.This returns "minecraft" for identifiers created without a namespace. - Returns:
- the namespace of the identifier
- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b()Ljava/lang/String;- intermediary - method_12836- Lnet/minecraft/class_2960;method_12836()Ljava/lang/String;- named - getNamespace- Lnet/minecraft/util/Identifier;getNamespace()Ljava/lang/String;
 
- 
withPath- Mappings:
- Namespace - Name - Mixin selector - official - c- Lacq;c(Ljava/lang/String;)Lacq;- intermediary - method_45136- Lnet/minecraft/class_2960;method_45136(Ljava/lang/String;)Lnet/minecraft/class_2960;- named - withPath- Lnet/minecraft/util/Identifier;withPath(Ljava/lang/String;)Lnet/minecraft/util/Identifier;
 
- 
withPath- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Ljava/util/function/UnaryOperator;)Lacq;- intermediary - method_45134- Lnet/minecraft/class_2960;method_45134(Ljava/util/function/UnaryOperator;)Lnet/minecraft/class_2960;- named - withPath- Lnet/minecraft/util/Identifier;withPath(Ljava/util/function/UnaryOperator;)Lnet/minecraft/util/Identifier;
 
- 
withPrefixedPath- Mappings:
- Namespace - Name - Mixin selector - official - d- Lacq;d(Ljava/lang/String;)Lacq;- intermediary - method_45138- Lnet/minecraft/class_2960;method_45138(Ljava/lang/String;)Lnet/minecraft/class_2960;- named - withPrefixedPath- Lnet/minecraft/util/Identifier;withPrefixedPath(Ljava/lang/String;)Lnet/minecraft/util/Identifier;
 
- 
withSuffixedPath- Mappings:
- Namespace - Name - Mixin selector - official - e- Lacq;e(Ljava/lang/String;)Lacq;- intermediary - method_48331- Lnet/minecraft/class_2960;method_48331(Ljava/lang/String;)Lnet/minecraft/class_2960;- named - withSuffixedPath- Lnet/minecraft/util/Identifier;withSuffixedPath(Ljava/lang/String;)Lnet/minecraft/util/Identifier;
 
- 
toString
- 
equals
- 
hashCodepublic int hashCode()
- 
compareTo- Specified by:
- compareToin interface- Comparable<Identifier>
- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Lacq;)I- intermediary - method_12833- Lnet/minecraft/class_2960;method_12833(Lnet/minecraft/class_2960;)I- named - compareTo- Lnet/minecraft/util/Identifier;compareTo(Lnet/minecraft/util/Identifier;)I
 
- 
toUnderscoreSeparatedStringReturns the string representation of the identifier with slashes and colons replaced with underscores.- Returns:
- the string representation of the identifier with slashes and colons replaced with underscores
- Mappings:
- Namespace - Name - Mixin selector - official - c- Lacq;c()Ljava/lang/String;- intermediary - method_36181- Lnet/minecraft/class_2960;method_36181()Ljava/lang/String;- named - toUnderscoreSeparatedString- Lnet/minecraft/util/Identifier;toUnderscoreSeparatedString()Ljava/lang/String;
 
- 
toTranslationKeyReturns the long translation key, without omitting the default namespace.- Returns:
- the long translation key, without omitting the default namespace
- Mappings:
- Namespace - Name - Mixin selector - official - d- Lacq;d()Ljava/lang/String;- intermediary - method_42094- Lnet/minecraft/class_2960;method_42094()Ljava/lang/String;- named - toTranslationKey- Lnet/minecraft/util/Identifier;toTranslationKey()Ljava/lang/String;
 
- 
toShortTranslationKeyReturns the short translation key, with the default namespace omitted if present.- Returns:
- the short translation key, with the default namespace omitted if present
- Mappings:
- Namespace - Name - Mixin selector - official - e- Lacq;e()Ljava/lang/String;- intermediary - method_43903- Lnet/minecraft/class_2960;method_43903()Ljava/lang/String;- named - toShortTranslationKey- Lnet/minecraft/util/Identifier;toShortTranslationKey()Ljava/lang/String;
 
- 
toTranslationKeyReturns the long translation key prefixed withprefixand a dot.- Returns:
- the long translation key prefixed with
 prefixand a dot
- Mappings:
- Namespace - Name - Mixin selector - official - f- Lacq;f(Ljava/lang/String;)Ljava/lang/String;- intermediary - method_42093- Lnet/minecraft/class_2960;method_42093(Ljava/lang/String;)Ljava/lang/String;- named - toTranslationKey- Lnet/minecraft/util/Identifier;toTranslationKey(Ljava/lang/String;)Ljava/lang/String;
 
- 
toTranslationKeyReturns the long translation key prefixed withprefixand a dot, and suffixed with a dot andsuffix.- Returns:
- the long translation key prefixed with
 prefixand a dot, and suffixed with a dot andsuffix
- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- intermediary - method_48747- Lnet/minecraft/class_2960;method_48747(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- named - toTranslationKey- Lnet/minecraft/util/Identifier;toTranslationKey(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 
- 
fromCommandInputpublic static Identifier fromCommandInput(com.mojang.brigadier.StringReader reader) throws com.mojang.brigadier.exceptions.CommandSyntaxException - Throws:
- com.mojang.brigadier.exceptions.CommandSyntaxException
- Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(Lcom/mojang/brigadier/StringReader;)Lacq;- intermediary - method_12835- Lnet/minecraft/class_2960;method_12835(Lcom/mojang/brigadier/StringReader;)Lnet/minecraft/class_2960;- named - fromCommandInput- Lnet/minecraft/util/Identifier;fromCommandInput(Lcom/mojang/brigadier/StringReader;)Lnet/minecraft/util/Identifier;
 
- 
isCharValidpublic static boolean isCharValid(char c) - Mappings:
- Namespace - Name - Mixin selector - official - a- Lacq;a(C)Z- intermediary - method_12831- Lnet/minecraft/class_2960;method_12831(C)Z- named - isCharValid- Lnet/minecraft/util/Identifier;isCharValid(C)Z
 
- 
isPathValidReturns whetherpathcan be used as an identifier's path.- Returns:
- whether pathcan be used as an identifier's path
- Mappings:
- Namespace - Name - Mixin selector - official - h- Lacq;h(Ljava/lang/String;)Z- intermediary - method_20208- Lnet/minecraft/class_2960;method_20208(Ljava/lang/String;)Z- named - isPathValid- Lnet/minecraft/util/Identifier;isPathValid(Ljava/lang/String;)Z
 
- 
isNamespaceValidReturns whethernamespacecan be used as an identifier's namespace.- Returns:
- whether namespacecan be used as an identifier's namespace
- Mappings:
- Namespace - Name - Mixin selector - official - i- Lacq;i(Ljava/lang/String;)Z- intermediary - method_20209- Lnet/minecraft/class_2960;method_20209(Ljava/lang/String;)Z- named - isNamespaceValid- Lnet/minecraft/util/Identifier;isNamespaceValid(Ljava/lang/String;)Z
 
- 
validateNamespace- Mappings:
- Namespace - Name - Mixin selector - official - c- Lacq;c(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- intermediary - method_45135- Lnet/minecraft/class_2960;method_45135(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- named - validateNamespace- Lnet/minecraft/util/Identifier;validateNamespace(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 
- 
isPathCharacterValidpublic static boolean isPathCharacterValid(char character) Returns whethercharacteris valid for use in identifier paths.- Returns:
- whether characteris valid for use in identifier paths
- Mappings:
- Namespace - Name - Mixin selector - official - b- Lacq;b(C)Z- intermediary - method_29184- Lnet/minecraft/class_2960;method_29184(C)Z- named - isPathCharacterValid- Lnet/minecraft/util/Identifier;isPathCharacterValid(C)Z
 
- 
isNamespaceCharacterValidprivate static boolean isNamespaceCharacterValid(char character) Returns whethercharacteris valid for use in identifier namespaces.- Returns:
- whether characteris valid for use in identifier namespaces
- Mappings:
- Namespace - Name - Mixin selector - official - c- Lacq;c(C)Z- intermediary - method_29185- Lnet/minecraft/class_2960;method_29185(C)Z- named - isNamespaceCharacterValid- Lnet/minecraft/util/Identifier;isNamespaceCharacterValid(C)Z
 
- 
isValidReturns whetheridcan be parsed as an identifier.- Returns:
- whether idcan be parsed as an identifier
- Mappings:
- Namespace - Name - Mixin selector - official - g- Lacq;g(Ljava/lang/String;)Z- intermediary - method_20207- Lnet/minecraft/class_2960;method_20207(Ljava/lang/String;)Z- named - isValid- Lnet/minecraft/util/Identifier;isValid(Ljava/lang/String;)Z
 
- 
validatePath- Mappings:
- Namespace - Name - Mixin selector - official - d- Lacq;d(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- intermediary - method_45137- Lnet/minecraft/class_2960;method_45137(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;- named - validatePath- Lnet/minecraft/util/Identifier;validatePath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 
 
-