Interface Key
-
- All Superinterfaces:
java.lang.Comparable<Key>,net.kyori.examination.Examinable,Keyed,Namespaced
public interface Key extends java.lang.Comparable<Key>, net.kyori.examination.Examinable, Namespaced, Keyed
An identifying object used to fetch and/or store unique objects.A key consists of:
- namespace
- in most cases this should be your plugin or organization name
- value
- what this key leads to, e.g "translations" or "entity.firework_rocket.blast"
Valid characters for namespaces are
[a-z0-9_.-].Valid characters for values are
[a-z0-9/._-].Some examples of possible custom keys:
- my_plugin:translations
- my_plugin:weapon.amazing-weapon_damage-attribute
- my_organization:music.song_1
- my_organization:item.magic_button
- Since:
- 4.0.0
-
-
Field Summary
Fields Modifier and Type Field Description static charDEFAULT_SEPARATORThe default namespace and value separator.static java.lang.StringMINECRAFT_NAMESPACEThe namespace for Minecraft.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static booleanallowedInNamespace(char character)Checks ifvalueis a valid character in a namespace.static booleanallowedInValue(char character)Checks ifvalueis a valid character in a value.@NotNull java.lang.StringasString()Returns the string representation of this key.static @NotNull java.util.OptionalIntcheckNamespace(@NotNull java.lang.String namespace)Checks ifvalueis a valid namespace.static @NotNull java.util.OptionalIntcheckValue(@NotNull java.lang.String value)Checks ifvalueis a valid value.static @NotNull java.util.Comparator<? super Key>comparator()Gets the comparator.default intcompareTo(@NotNull Key that)default @NotNull java.util.stream.Stream<? extends net.kyori.examination.ExaminableProperty>examinableProperties()default @NotNull Keykey()Gets the key.static @NotNull Keykey(@NotNull java.lang.String string)Creates a key.static @NotNull Keykey(@NotNull java.lang.String string, char character)Creates a key.static @NotNull Keykey(@NotNull java.lang.String namespace, @NotNull java.lang.String value)Creates a key.static @NotNull Keykey(@NotNull Namespaced namespaced, @NotNull java.lang.String value)Creates a key.@NotNull java.lang.Stringnamespace()Gets the namespace.static booleanparseable(@Nullable java.lang.String string)Checks ifstringcan be parsed into aKey.static booleanparseableNamespace(@NotNull java.lang.String namespace)Checks ifvalueis a valid namespace.static booleanparseableValue(@NotNull java.lang.String value)Checks ifvalueis a valid value.@NotNull java.lang.Stringvalue()Gets the value.
-
-
-
Field Detail
-
MINECRAFT_NAMESPACE
static final java.lang.String MINECRAFT_NAMESPACE
The namespace for Minecraft.- Since:
- 4.0.0
- See Also:
- Constant Field Values
-
DEFAULT_SEPARATOR
static final char DEFAULT_SEPARATOR
The default namespace and value separator.- Since:
- 4.12.0
- See Also:
- Constant Field Values
-
-
Method Detail
-
key
@NotNull static @NotNull Key key(@NotNull @KeyPattern @NotNull java.lang.String string)
Creates a key.This will parse
stringas a key, using:as a separator between the namespace and the value.The namespace is optional. If you do not provide one (for example, if you provide just
playeror:playeras the string) thenMINECRAFT_NAMESPACEwill be used as a namespace andstringwill be used as the value, removing the colon if necessary.- Parameters:
string- the string- Returns:
- the key
- Throws:
InvalidKeyException- if the namespace or value contains an invalid character- Since:
- 4.0.0
-
key
@NotNull static @NotNull Key key(@NotNull @NotNull java.lang.String string, char character)
Creates a key.This will parse
stringas a key, usingcharacteras a separator between the namespace and the value.The namespace is optional. If you do not provide one (for example, if you provide
playerorcharacter + "player"as the string) thenMINECRAFT_NAMESPACEwill be used as a namespace andstringwill be used as the value, removing the provided separator character if necessary.- Parameters:
string- the stringcharacter- the character that separates the namespace from the value- Returns:
- the key
- Throws:
InvalidKeyException- if the namespace or value contains an invalid character- Since:
- 4.0.0
-
key
@NotNull static @NotNull Key key(@NotNull @NotNull Namespaced namespaced, @NotNull @Value @NotNull java.lang.String value)
Creates a key.- Parameters:
namespaced- the namespace sourcevalue- the value- Returns:
- the key
- Throws:
InvalidKeyException- if the namespace or value contains an invalid character- Since:
- 4.4.0
-
key
@NotNull static @NotNull Key key(@NotNull @Namespace @NotNull java.lang.String namespace, @NotNull @Value @NotNull java.lang.String value)
Creates a key.- Parameters:
namespace- the namespacevalue- the value- Returns:
- the key
- Throws:
InvalidKeyException- if the namespace or value contains an invalid character- Since:
- 4.0.0
-
comparator
@NotNull static @NotNull java.util.Comparator<? super Key> comparator()
- Returns:
- a comparator for keys
- Since:
- 4.10.0
-
parseable
static boolean parseable(@Nullable @Nullable java.lang.String string)Checks ifstringcan be parsed into aKey.- Parameters:
string- the input string- Returns:
trueifstringcan be parsed into aKey,falseotherwise- Since:
- 4.12.0
-
parseableNamespace
static boolean parseableNamespace(@NotNull @NotNull java.lang.String namespace)Checks ifvalueis a valid namespace.- Parameters:
namespace- the string to check- Returns:
trueifvalueis a valid namespace,falseotherwise- Since:
- 4.12.0
-
checkNamespace
@NotNull static @NotNull java.util.OptionalInt checkNamespace(@NotNull @NotNull java.lang.String namespace)Checks ifvalueis a valid namespace.- Parameters:
namespace- the string to check- Returns:
OptionalInt.empty()ifvalueis a valid namespace, otherwise anOptionalIntcontaining the index of an invalid character- Since:
- 4.14.0
-
parseableValue
static boolean parseableValue(@NotNull @NotNull java.lang.String value)Checks ifvalueis a valid value.- Parameters:
value- the string to check- Returns:
trueifvalueis a valid value,falseotherwise- Since:
- 4.12.0
-
checkValue
@NotNull static @NotNull java.util.OptionalInt checkValue(@NotNull @NotNull java.lang.String value)Checks ifvalueis a valid value.- Parameters:
value- the string to check- Returns:
OptionalInt.empty()ifvalueis a valid value, otherwise anOptionalIntcontaining the index of an invalid character- Since:
- 4.14.0
-
allowedInNamespace
static boolean allowedInNamespace(char character)
Checks ifvalueis a valid character in a namespace.- Parameters:
character- the character to check- Returns:
trueifvalueis a valid character in a namespace,falseotherwise- Since:
- 4.12.0
-
allowedInValue
static boolean allowedInValue(char character)
Checks ifvalueis a valid character in a value.- Parameters:
character- the character to check- Returns:
trueifvalueis a valid character in a value,falseotherwise- Since:
- 4.12.0
-
namespace
@NotNull @Namespace @NotNull java.lang.String namespace()
Gets the namespace.- Specified by:
namespacein interfaceNamespaced- Returns:
- the namespace
- Since:
- 4.0.0
-
value
@NotNull @Value @NotNull java.lang.String value()
Gets the value.- Returns:
- the value
- Since:
- 4.0.0
-
asString
@NotNull @NotNull java.lang.String asString()
Returns the string representation of this key.- Returns:
- the string representation
- Since:
- 4.0.0
-
examinableProperties
@NotNull default @NotNull java.util.stream.Stream<? extends net.kyori.examination.ExaminableProperty> examinableProperties()
- Specified by:
examinablePropertiesin interfacenet.kyori.examination.Examinable
-
compareTo
default int compareTo(@NotNull @NotNull Key that)- Specified by:
compareToin interfacejava.lang.Comparable<Key>
-
-