Interface Key

All Superinterfaces:
Comparable<Key>, net.kyori.examination.Examinable

public interface Key
extends Comparable<Key>, net.kyori.examination.Examinable
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 String MINECRAFT_NAMESPACE
    The namespace for Minecraft.
  • Method Summary

    Modifier and Type Method Description
    @NotNull String asString()
    Returns the string representation of this key.
    default int compareTo​(@NotNull Key that)  
    default @NotNull Stream<? extends net.kyori.examination.ExaminableProperty> examinableProperties()  
    static @NotNull Key key​(@NotNull String string)
    Creates a key.
    static @NotNull Key key​(@NotNull String string, char character)
    Creates a key.
    static @NotNull Key key​(@NotNull String namespace, @NotNull String value)
    Creates a key.
    static @NotNull Key key​(@NotNull Namespaced namespaced, @NotNull String value)
    Creates a key.
    @NotNull String namespace()
    Gets the namespace.
    @NotNull String value()
    Gets the value.

    Methods inherited from interface net.kyori.examination.Examinable

    examinableName, examine
  • Field Details

    • MINECRAFT_NAMESPACE

      static final String MINECRAFT_NAMESPACE
      The namespace for Minecraft.
      Since:
      4.0.0
      See Also:
      Constant Field Values
  • Method Details

    • key

      @NotNull static @NotNull Key key​(@NotNull @NotNull String string)
      Creates a key.

      This will parse string as 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 player or :player as the string) then MINECRAFT_NAMESPACE will be used as a namespace and string will 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 String string, char character)
      Creates a key.

      This will parse string as a key, using character as a separator between the namespace and the value.

      The namespace is optional. If you do not provide one (for example, if you provide player or character + "player" as the string) then MINECRAFT_NAMESPACE will be used as a namespace and string will be used as the value, removing the provided separator character if necessary.

      Parameters:
      string - the string
      character - 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 @NotNull String value)
      Creates a key.
      Parameters:
      namespaced - the namespace source
      value - 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 @NotNull String namespace, @NotNull @NotNull String value)
      Creates a key.
      Parameters:
      namespace - the namespace
      value - the value
      Returns:
      the key
      Throws:
      InvalidKeyException - if the namespace or value contains an invalid character
      Since:
      4.0.0
    • namespace

      @NotNull @NotNull String namespace()
      Gets the namespace.
      Returns:
      the namespace
      Since:
      4.0.0
    • value

      @NotNull @NotNull String value()
      Gets the value.
      Returns:
      the value
      Since:
      4.0.0
    • asString

      @NotNull @NotNull String asString()
      Returns the string representation of this key.
      Returns:
      the string representation
      Since:
      4.0.0
    • examinableProperties

      @NotNull default @NotNull Stream<? extends net.kyori.examination.ExaminableProperty> examinableProperties()
      Specified by:
      examinableProperties in interface net.kyori.examination.Examinable
    • compareTo

      default int compareTo​(@NotNull @NotNull Key that)
      Specified by:
      compareTo in interface Comparable<Key>