Package org.bukkit

# Class NamespacedKey

java.lang.Object
org.bukkit.NamespacedKey

All Implemented Interfaces:
  `Namespaced`, `Comparable<net.kyori.adventure.key.Key>`, `net.kyori.adventure.key.Key`, `net.kyori.adventure.key.Keyed`, `net.kyori.adventure.key.Namespaced`, `net.kyori.examination.Examinable`

public final class NamespacedKey extends Object implements net.kyori.adventure.key.Key, Namespaced
Represents a String based key which consists of two components - a namespace and a key. Namespaces may only contain lowercase alphanumeric characters, periods, underscores, and hyphens.

Keys may only contain lowercase alphanumeric characters, periods, underscores, hyphens, and forward slashes.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`BUKKIT`
The namespace representing all keys generated by Bukkit for backwards compatibility measures.
`static final String`
`MINECRAFT`
The namespace representing all inbuilt keys.

### Fields inherited from interface net.kyori.adventure.key.Key

`DEFAULT_SEPARATOR, MINECRAFT_NAMESPACE`

## Constructor Summary

Constructors
Constructor
Description
`NamespacedKey(@NotNull String namespace, @NotNull String key)`
Create a key in a specific namespace.
`NamespacedKey(@NotNull Plugin plugin, @NotNull String key)`
Create a key in the plugin's namespace.

## Method Summary

Modifier and Type
Method
Description
`@NotNull String`
`asString()`
`boolean`
`equals(Object obj)`
`static @Nullable NamespacedKey`
`fromString(@NotNull String key)`
Get a NamespacedKey from the supplied string.
`static @Nullable NamespacedKey`
`fromString(@NotNull String string, @Nullable Plugin defaultNamespace)`
Get a NamespacedKey from the supplied string with a default namespace if a namespace is not defined.
`@NotNull String`
`getKey()`
Gets the key corresponding to this resource
`@NotNull String`
`getNamespace()`
Gets the namespace this resource is a part of
`int`
`hashCode()`
`static @NotNull NamespacedKey`
`minecraft(@NotNull String key)`
Get a key in the Minecraft namespace.
`@NotNull String`
`namespace()`
`static @NotNull NamespacedKey`
`randomKey()`
Deprecated.
should never be used by plugins, for internal use only!!
`String`
`toString()`
`@NotNull String`
`value()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface net.kyori.examination.Examinable

`examinableName, examine`

### Methods inherited from interface net.kyori.adventure.key.Key

`compareTo, examinableProperties, key`

## Field Details

### MINECRAFT

public static final String MINECRAFT
The namespace representing all inbuilt keys.

See Also:
  - Constant Field Values

### BUKKIT

public static final String BUKKIT
The namespace representing all keys generated by Bukkit for backwards compatibility measures.

See Also:
  - Constant Field Values

## Constructor Details

### NamespacedKey

public NamespacedKey(@NotNull @NotNull String namespace, @NotNull @NotNull String key)
Create a key in a specific namespace.

For most plugin related code, you should prefer using the `NamespacedKey(Plugin, String)` constructor.

Parameters:
  `namespace` - namespace
  `key` - key
See Also:
  - `NamespacedKey(Plugin, String)`

### NamespacedKey

public NamespacedKey(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String key)
Create a key in the plugin's namespace.

Namespaces may only contain lowercase alphanumeric characters, periods, underscores, and hyphens.

Keys may only contain lowercase alphanumeric characters, periods, underscores, hyphens, and forward slashes.

Parameters:
  `plugin` - the plugin to use for the namespace
  `key` - the key to create

## Method Details

### getNamespace

@NotNull public @NotNull String getNamespace()
Description copied from interface: `Namespaced`
Gets the namespace this resource is a part of

This is contractually obligated to only contain lowercase alphanumeric characters, periods, underscores, and hyphens.

Specified by:
  `getNamespace` in interface `Namespaced`
Returns:
  resource namespace

### getKey

@NotNull public @NotNull String getKey()
Description copied from interface: `Namespaced`
Gets the key corresponding to this resource

This is contractually obligated to only contain lowercase alphanumeric characters, periods, underscores, hyphens, and forward slashes.

Specified by:
  `getKey` in interface `Namespaced`
Returns:
  resource key

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### randomKey

@Deprecated @NotNull public static @NotNull NamespacedKey randomKey()
Deprecated.
should never be used by plugins, for internal use only!!
Return a new random key in the `BUKKIT` namespace.

Returns:
  new key

### minecraft

@NotNull public static @NotNull NamespacedKey minecraft(@NotNull @NotNull String key)
Get a key in the Minecraft namespace.

Parameters:
  `key` - the key to use
Returns:
  new key in the Minecraft namespace

### fromString

@Nullable public static @Nullable NamespacedKey fromString(@NotNull @NotNull String string, @Nullable @Nullable Plugin defaultNamespace)
Get a NamespacedKey from the supplied string with a default namespace if a namespace is not defined. This is a utility method meant to fetch a NamespacedKey from user input. Please note that casing does matter and any instance of uppercase characters will be considered invalid. The input contract is as follows:

     fromString("foo", plugin) -> "plugin:foo"
     fromString("foo:bar", plugin) -> "foo:bar"
     fromString(":foo", null) -> "minecraft:foo"
     fromString("foo", null) -> "minecraft:foo"
     fromString("Foo", plugin) -> null
     fromString(":Foo", plugin) -> null
     fromString("foo:bar:bazz", plugin) -> null
     fromString("", plugin) -> null

Parameters:
  `string` - the string to convert to a NamespacedKey
  `defaultNamespace` - the default namespace to use if none was supplied. If null, the `minecraft` namespace (`minecraft(String)`) will be used
Returns:
  the created NamespacedKey. null if invalid key
See Also:
  - `fromString(String)`

### fromString

@Nullable public static @Nullable NamespacedKey fromString(@NotNull @NotNull String key)
Get a NamespacedKey from the supplied string. The default namespace will be Minecraft's (i.e. `minecraft(String)`).

Parameters:
  `key` - the key to convert to a NamespacedKey
Returns:
  the created NamespacedKey. null if invalid
See Also:
  - `fromString(String, Plugin)`

### namespace

@NotNull public @NotNull String namespace()

Specified by:
  `namespace` in interface `net.kyori.adventure.key.Key`
Specified by:
  `namespace` in interface `net.kyori.adventure.key.Namespaced`

### value

@NotNull public @NotNull String value()

Specified by:
  `value` in interface `net.kyori.adventure.key.Key`

### asString

@NotNull public @NotNull String asString()

Specified by:
  `asString` in interface `net.kyori.adventure.key.Key`