Interface Key

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

    public interface Key
    extends Comparable<Key>, net.kyori.examination.Examinable, Namespaced
    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 Detail

      • MINECRAFT_NAMESPACE

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

      • 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
      • comparator

        @NotNull
        static @NotNull Comparator<? super Key> comparator()
        Gets the comparator.

        The value is compared first, followed by the namespace.

        Returns:
        a comparator for keys
        Since:
        4.10.0
      • namespace

        @NotNull
        @NotNull String namespace()
        Gets the namespace.
        Specified by:
        namespace in interface Namespaced
        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