Package org.bukkit

# Class Bukkit

java.lang.Object
org.bukkit.Bukkit

public final class Bukkit extends Object
Represents the Bukkit core, for version and Server singleton handling

## Method Summary

Modifier and Type
Method
Description
`static boolean`
`addRecipe(@Nullable Recipe recipe)`
Adds a recipe to the crafting manager.
`static @NotNull Iterator<Advancement>`
`advancementIterator()`
Get an iterator through all advancements.
`static void`
`banIP(@NotNull String address)`
Bans the specified address from the server.
`static int`
`broadcast(@NotNull String message, @NotNull String permission)`
Deprecated.
in favour of `broadcast(net.kyori.adventure.text.Component, String)`
`static void`
`broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent... components)`
Deprecated.
use `sendMessage` methods on `getServer()` that accept `Component`
`static int`
`broadcast(Component message)`
Broadcast a message to all players.
`static int`
`broadcast(Component message, @NotNull String permission)`
Broadcasts the specified message to every user with the given permission name.
`static void`
`broadcast(net.md_5.bungee.api.chat.BaseComponent component)`
Deprecated.
use `sendMessage` methods on `getServer()` that accept `Component`
`static int`
`broadcastMessage(@NotNull String message)`
Deprecated.
in favour of `Server.broadcast(net.kyori.adventure.text.Component)`
`static void`
`clearRecipes()`
Clears the list of crafting recipes.
`static @NotNull ItemStack`
`craftItem(@NotNull ItemStack[] craftingMatrix, @NotNull World world, @NotNull Player player)`
Get the crafted item using the list of `ItemStack` provided.
`static @NotNull BlockData`
`createBlockData(@NotNull String data)`
Creates a new `BlockData` instance with material and properties parsed from provided data.
`static @NotNull BlockData`
`createBlockData(@NotNull Material material)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`static @NotNull BlockData`
`createBlockData(@NotNull Material material, @Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`static @NotNull BlockData`
`createBlockData(@Nullable Material material, @Nullable String data)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.
`static @NotNull KeyedBossBar`
`createBossBar(@NotNull NamespacedKey key, @Nullable String title, @NotNull BarColor color, @NotNull BarStyle style, @NotNull BarFlag... flags)`
Creates a boss bar instance to display to players.
`static @NotNull BossBar`
`createBossBar(@Nullable String title, @NotNull BarColor color, @NotNull BarStyle style, @NotNull BarFlag... flags)`
Creates a boss bar instance to display to players.
`static ChunkGenerator.ChunkData`
`createChunkData(@NotNull World world)`
Create a ChunkData for use in a generator.
`static @NotNull CommandSender`
`createCommandSender(Consumer<? super Component> feedback)`
Creates a special `CommandSender` which redirects command feedback (in the form of chat messages) to the specified listener.
`static @NotNull ItemStack`
`createExplorerMap(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType)`
Create a new explorer map targeting the closest nearby structure of a given `StructureType`.
`static @NotNull ItemStack`
`createExplorerMap(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType, int radius, boolean findUnexplored)`
Create a new explorer map targeting the closest nearby structure of a given `StructureType`.
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, int size)`
Creates an empty inventory of type `InventoryType.CHEST` with the specified size.
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title)`
Deprecated.
in favour of `createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, int size, Component title)`
Creates an empty inventory of type `InventoryType.CHEST` with the specified size and title.
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type)`
Creates an empty inventory with the specified type.
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title)`
Deprecated.
in favour of `createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
`static @NotNull Inventory`
`createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, Component title)`
Creates an empty inventory with the specified type and title.
`static @NotNull MapView`
`createMap(@NotNull World world)`
Create a new map with an automatically assigned ID.
`static @NotNull Merchant`
`createMerchant(@Nullable String title)`
Deprecated.
in favour of `createMerchant(net.kyori.adventure.text.Component)`
`static @NotNull Merchant`
`createMerchant(Component title)`
Creates an empty merchant.
`static @NotNull PlayerProfile`
`createPlayerProfile(@NotNull String name)`
Deprecated.
use `createProfile(String)`
`static @NotNull PlayerProfile`
`createPlayerProfile(@NotNull UUID uniqueId)`
Deprecated.
use `createProfile(UUID)`
`static @NotNull PlayerProfile`
`createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name)`
Deprecated.
use `createProfile(UUID, String)`
`static PlayerProfile`
`createProfile(@NotNull String name)`
Creates a PlayerProfile for the specified name, with UUID as null.
`static PlayerProfile`
`createProfile(@NotNull UUID uuid)`
Creates a PlayerProfile for the specified uuid, with name as null.
`static PlayerProfile`
`createProfile(@Nullable UUID uuid, @Nullable String name)`
Creates a PlayerProfile for the specified name/uuid Both UUID and Name can not be null at same time.
`static PlayerProfile`
`createProfileExact(@Nullable UUID uuid, @Nullable String name)`
Creates an exact PlayerProfile for the specified name/uuid Both UUID and Name can not be null at same time.
`static ChunkGenerator.ChunkData`
`createVanillaChunkData(@NotNull World world, int x, int z)`
Deprecated, for removal: This API element is subject to removal in a future version.
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
`static @Nullable World`
`createWorld(@NotNull WorldCreator creator)`
Creates or loads a world with the given name using the specified options.
`static @NotNull WorldBorder`
`createWorldBorder()`
Create a new virtual `WorldBorder`.
`static boolean`
`dispatchCommand(@NotNull CommandSender sender, @NotNull String commandLine)`
Dispatches a command on this server, and executes it if found.
`static @Nullable Advancement`
`getAdvancement(@NotNull NamespacedKey key)`
Get the advancement specified by this key.
`static boolean`
`getAllowEnd()`
Gets whether this server allows the End or not.
`static boolean`
`getAllowFlight()`
Gets whether this server allows flying or not.
`static boolean`
`getAllowNether()`
Gets whether this server allows the Nether or not.
`static int`
`getAmbientSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static int`
`getAnimalSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static double`
`getAverageTickTime()`
Get the average tick time (in millis)
`static @NotNull BanList`
`getBanList(BanList.Type type)`
Gets a ban list for the supplied type.
`static @NotNull Set<OfflinePlayer>`
`getBannedPlayers()`
Gets a set containing all banned players.
`static @Nullable KeyedBossBar`
`getBossBar(@NotNull NamespacedKey key)`
Gets the `KeyedBossBar` specified by this key.
`static @NotNull Iterator<KeyedBossBar>`
`getBossBars()`
Gets an unmodifiable iterator through all persistent bossbars.
`static @NotNull String`
`getBukkitVersion()`
Gets the Bukkit version that this server is running.
`static @NotNull Map<String,String[]>`
`getCommandAliases()`
Gets a list of command aliases defined in the server properties.
`static CommandMap`
`getCommandMap()`
Gets the active `CommandMap`
`static long`
`getConnectionThrottle()`
Gets the value of the connection throttle setting.
`static @NotNull ConsoleCommandSender`
`getConsoleSender()`
Gets a `ConsoleCommandSender` that may be used as an input source for this server.
`static @Nullable Recipe`
`getCraftingRecipe(@NotNull ItemStack[] craftingMatrix, @NotNull World world)`
Get the `Recipe` for the list of ItemStacks provided.
`static int`
`getCurrentTick()`
`static DatapackManager`
`getDatapackManager()`
`static @NotNull GameMode`
`getDefaultGameMode()`
Gets the default `GameMode` for new players.
`static @Nullable Entity`
`getEntity(@NotNull UUID uuid)`
Gets an entity on the server by its UUID
`static boolean`
`getGenerateStructures()`
Get generate-structures setting.
`static @NotNull HelpMap`
`getHelpMap()`
Gets the `HelpMap` providing help topics for this server.
`static boolean`
`getHideOnlinePlayers()`
Gets whether the Server hide online players in server status.
`static int`
`getIdleTimeout()`
Gets the idle kick timeout.
`static @NotNull String`
`getIp()`
Get the IP that this server is bound to, or empty string if not specified.
`static @NotNull Set<String>`
`getIPBans()`
Gets a set containing all current IPs that are banned.
`static @NotNull ItemFactory`
`getItemFactory()`
Gets the instance of the item factory (for `ItemMeta`).
`static @NotNull Logger`
`getLogger()`
Returns the primary logger associated with this server instance.
`static @Nullable LootTable`
`getLootTable(@NotNull NamespacedKey key)`
Gets the specified `LootTable`.
`static @Nullable MapView`
`getMap(int id)`
Deprecated.
Magic value
`static int`
`getMaxChainedNeighborUpdates()`
Gets the amount of consecutive neighbor updates before skipping additional ones.
`static int`
`getMaxPlayers()`
Get the maximum amount of players which can login to this server.
`static int`
`getMaxWorldSize()`
Get max world size.
`static @NotNull Messenger`
`getMessenger()`
Gets the `Messenger` responsible for this server.
`static @NotNull String`
`getMinecraftVersion()`
Gets the version of game this server implements
`static MobGoals`
`getMobGoals()`
Returns the `MobGoals` manager
`static int`
`getMonsterSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static @NotNull String`
`getMotd()`
Deprecated.
in favour of `motd()`
`static @NotNull String`
`getName()`
Gets the name of this server implementation.
`static @NotNull OfflinePlayer`
`getOfflinePlayer(@NotNull String name)`
Gets the player by the given name, regardless if they are offline or online.
`static @NotNull OfflinePlayer`
`getOfflinePlayer(@NotNull UUID id)`
Gets the player by the given UUID, regardless if they are offline or online.
`static @Nullable OfflinePlayer`
`getOfflinePlayerIfCached(@NotNull String name)`
Gets the player by the given name, regardless if they are offline or online.
`static @NotNull OfflinePlayer[]`
`getOfflinePlayers()`
Gets every player that has ever played on this server.
`static boolean`
`getOnlineMode()`
Gets whether the Server is in online mode or not.
`static @NotNull Collection<? extends Player>`
`getOnlinePlayers()`
Gets a view of all currently logged in players.
`static @NotNull Set<OfflinePlayer>`
`getOperators()`
Gets a set containing all player operators.
`static @NotNull String`
`getPermissionMessage()`
Deprecated.
use `permissionMessage()`
`static @Nullable Player`
`getPlayer(@NotNull String name)`
Gets a player object by the given username.
`static @Nullable Player`
`getPlayer(@NotNull UUID id)`
Gets the player with the given UUID.
`static @Nullable Player`
`getPlayerExact(@NotNull String name)`
Gets the player with the exact given name, case insensitive.
`static @Nullable UUID`
`getPlayerUniqueId(@NotNull String playerName)`
Gets the unique ID of the player currently known as the specified player name In Offline Mode, will return an Offline UUID
`static @Nullable PluginCommand`
`getPluginCommand(@NotNull String name)`
Gets a `PluginCommand` with the given name or alias.
`static @NotNull PluginManager`
`getPluginManager()`
Gets the plugin manager for interfacing with plugins.
`static @NotNull File`
`getPluginsFolder()`
Returns the de facto plugins directory, generally used for storing plugin jars to be loaded, as well as their `data folders`.
`static int`
`getPort()`
Get the game port that the server runs on.
`static PotionBrewer`
`getPotionBrewer()`
Gets the potion brewer.
`static @Nullable Recipe`
`getRecipe(@NotNull NamespacedKey recipeKey)`
Get the `Recipe` for the given key.
`static @NotNull List<Recipe>`
`getRecipesFor(@NotNull ItemStack result)`
Get a list of all recipes for a given item.
`static <T extends Keyed>
@Nullable Registry<T>`
`getRegistry(@NotNull Class<T> tClass)`
Returns the registry for the given class.
`static @NotNull String`
`getResourcePack()`
Gets the server resource pack uri, or empty string if not specified.
`static @NotNull String`
`getResourcePackHash()`
Gets the SHA-1 digest of the server resource pack, or empty string if not specified.
`static @NotNull String`
`getResourcePackPrompt()`
Gets the custom prompt message to be shown when the server resource pack is required, or empty string if not specified.
`static @NotNull BukkitScheduler`
`getScheduler()`
Gets the scheduler for managing scheduled events.
`static @NotNull Criteria`
`getScoreboardCriteria(@NotNull String name)`
Get (or create) a new `Criteria` by its name.
`static @NotNull ScoreboardManager`
`getScoreboardManager()`
Gets the instance of the scoreboard manager.
`static @NotNull Server`
`getServer()`
Gets the current `Server` singleton
`static @Nullable CachedServerIcon`
`getServerIcon()`
Gets an instance of the server's default server-icon.
`static @NotNull ServicesManager`
`getServicesManager()`
Gets a services manager.
`static @Nullable String`
`getShutdownMessage()`
Deprecated.
in favour of `shutdownMessage()`
`static int`
`getSimulationDistance()`
Get the simulation distance from this server.
`static int`
`getSpawnLimit(@NotNull SpawnCategory spawnCategory)`
Gets user-specified limit for number of `SpawnCategory` mobs that can spawn in a chunk.
`static int`
`getSpawnRadius()`
Gets the radius, in blocks, around each worlds spawn point to protect.
`static @NotNull StructureManager`
`getStructureManager()`
Gets the structure manager for loading and saving structures.
`static <T extends Keyed>
@Nullable Tag<T>`
`getTag(@NotNull String registry, @NotNull NamespacedKey tag, @NotNull Class<T> clazz)`
Gets a tag which has already been defined within the server.
`static <T extends Keyed>
@NotNull Iterable<Tag<T>>`
`getTags(@NotNull String registry, @NotNull Class<T> clazz)`
Gets a all tags which have been defined within the server.
`static int`
`getTicksPerAmbientSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static int`
`getTicksPerAnimalSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static int`
`getTicksPerMonsterSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static int`
`getTicksPerSpawns(@NotNull SpawnCategory spawnCategory)`
Gets the default ticks per `SpawnCategory` spawns value.
`static int`
`getTicksPerWaterAmbientSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static int`
`getTicksPerWaterSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static int`
`getTicksPerWaterUndergroundCreatureSpawns()`
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
`static @org.jetbrains.annotations.NotNull long[]`
`getTickTimes()`
Get a sample of the servers last tick times (in nanos)
`static @org.jetbrains.annotations.NotNull double[]`
`getTPS()`
Gets the current server TPS
`static @NotNull UnsafeValues`
`getUnsafe()`
Deprecated.
`static @NotNull String`
`getUpdateFolder()`
Gets the name of the update folder.
`static @NotNull File`
`getUpdateFolderFile()`
Gets the update folder.
`static @NotNull String`
`getVersion()`
Gets the version string of this server implementation.
`static @NotNull String`
`getVersionMessage()`
Gets message describing the version server is running.
`static int`
`getViewDistance()`
Get the view distance from this server.
`static @NotNull Warning.WarningState`
`getWarningState()`
Gets the current warning state for the server.
`static int`
`getWaterAmbientSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static int`
`getWaterAnimalSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static int`
`getWaterUndergroundCreatureSpawnLimit()`
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
`static @NotNull Set<OfflinePlayer>`
`getWhitelistedPlayers()`
Gets a list of whitelisted players.
`static @Nullable World`
`getWorld(@NotNull String name)`
Gets the world with the given name.
`static @Nullable World`
`getWorld(@NotNull UUID uid)`
Gets the world from the given Unique ID.
`static @Nullable World`
`getWorld(@NotNull NamespacedKey worldKey)`
Gets the world from the given NamespacedKey
`static @NotNull File`
`getWorldContainer()`
Gets the folder that contains all of the various `World`s.
`static @NotNull List<World>`
`getWorlds()`
Gets a list of all worlds on this server.
`static @NotNull String`
`getWorldType()`
Get world type (level-type setting) for default world.
`static boolean`
`hasWhitelist()`
Gets whether this server has a whitelist or not.
`static boolean`
`isEnforcingSecureProfiles()`
Gets whether the server only allow players with Mojang-signed public key to join
`static boolean`
`isHardcore()`
Gets whether the server is in hardcore mode or not.
`static boolean`
`isPrimaryThread()`
Checks the current thread against the expected primary thread for the server.
`static boolean`
`isResourcePackRequired()`
Gets whether the server resource pack is enforced.
`static boolean`
`isStopping()`
Checks if the server is in the process of being shutdown.
`static boolean`
`isTickingWorlds()`
Gets whether the worlds are being ticked right now.
`static boolean`
`isWhitelistEnforced()`
Gets whether the server whitelist is enforced.
`static @NotNull CachedServerIcon`
`loadServerIcon(@NotNull BufferedImage image)`
Creates a cached server-icon for the specific image.
`static @NotNull CachedServerIcon`
`loadServerIcon(@NotNull File file)`
Loads an image from a file, and returns a cached image for the specific server-icon.
`static @NotNull List<Player>`
`matchPlayer(@NotNull String name)`
Attempts to match any players with the given name, and returns a list of all possibly matches.
`static Component`
`motd()`
Gets the message that is displayed on the server list.
`static Component`
`permissionMessage()`
Gets the default no permission message used on the server
`static @NotNull Iterator<Recipe>`
`recipeIterator()`
Get an iterator through the list of crafting recipes.
`static void`
`reload()`
Reloads the server, refreshing settings and plugin information.
`static boolean`
`reloadCommandAliases()`
Reload the Command Aliases in commands.yml
`static void`
`reloadData()`
Reload only the Minecraft data for the server.
`static void`
`reloadPermissions()`
Reload the Permissions in permissions.yml
`static void`
`reloadWhitelist()`
Reloads the whitelist from disk.
`static boolean`
`removeBossBar(@NotNull NamespacedKey key)`
Removes a `KeyedBossBar` specified by this key.
`static boolean`
`removeRecipe(@NotNull NamespacedKey key)`
Remove a recipe from the server.
`static void`
`resetRecipes()`
Resets the list of crafting recipes to the default.
`static void`
`savePlayers()`
Writes loaded players to disk.
`static @NotNull List<Entity>`
`selectEntities(@NotNull CommandSender sender, @NotNull String selector)`
Selects entities using the given Vanilla selector.
`static void`
`setDefaultGameMode(@NotNull GameMode mode)`
Sets the default `GameMode` for new players.
`static void`
`setIdleTimeout(int threshold)`
Set the idle kick timeout.
`static void`
`setMaxPlayers(int maxPlayers)`
Set the maximum amount of players which can login to this server.
`static void`
`setServer(@NotNull Server server)`
Attempts to set the `Server` singleton.
`static void`
`setSpawnRadius(int value)`
Sets the radius, in blocks, around each worlds spawn point to protect.
`static void`
`setWhitelist(boolean value)`
Sets if the server is whitelisted.
`static void`
`setWhitelistEnforced(boolean value)`
Sets if the server whitelist is enforced.
`static boolean`
`shouldSendChatPreviews()`
Deprecated.
chat previews have been removed
`static void`
`shutdown()`
Shutdowns the server, stopping everything.
`static Component`
`shutdownMessage()`
Gets the default message that is displayed when the server is stopped.
`static Server.Spigot`
`spigot()`
`static boolean`
`suggestPlayerNamesWhenNullTabCompletions()`
Checks if player names should be suggested when a command returns `null` as their tab completion result.
`static void`
`unbanIP(@NotNull String address)`
Unbans the specified address from the server.
`static boolean`
`unloadWorld(@NotNull String name, boolean save)`
Unloads a world with the given name.
`static boolean`
`unloadWorld(@NotNull World world, boolean save)`
Unloads the given world.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getServer

@NotNull public static @NotNull Server getServer()
Gets the current `Server` singleton

Returns:
  Server instance being ran

### getPluginsFolder

@NotNull public static @NotNull File getPluginsFolder()
Returns the de facto plugins directory, generally used for storing plugin jars to be loaded, as well as their `data folders`.

Plugins should use `Plugin.getDataFolder()` rather than traversing this directory manually when determining the location in which to store their data and configuration files.

Returns:
  plugins directory

### setServer

public static void setServer(@NotNull @NotNull Server server)
Attempts to set the `Server` singleton.

This cannot be done if the Server is already set.

Parameters:
  `server` - Server instance

### getVersionMessage

@NotNull public static @NotNull String getVersionMessage()
Gets message describing the version server is running.

Returns:
  message describing the version server is running

### getName

@NotNull public static @NotNull String getName()
Gets the name of this server implementation.

Returns:
  name of this server implementation

### getVersion

@NotNull public static @NotNull String getVersion()
Gets the version string of this server implementation.

Returns:
  version of this server implementation

### getBukkitVersion

@NotNull public static @NotNull String getBukkitVersion()
Gets the Bukkit version that this server is running.

Returns:
  version of Bukkit

### getMinecraftVersion

@NotNull public static @NotNull String getMinecraftVersion()
Gets the version of game this server implements

Returns:
  version of game

### getOnlinePlayers

@NotNull public static @NotNull Collection<? extends Player> getOnlinePlayers()
Gets a view of all currently logged in players. This view is a reused object, making some operations like `Collection.size()` zero-allocation.

The collection is a view backed by the internal representation, such that, changes to the internal state of the server will be reflected immediately. However, the reuse of the returned collection (identity) is not strictly guaranteed for future or all implementations. Casting the collection, or relying on interface implementations (like `Serializable` or `List`), is deprecated.

Iteration behavior is undefined outside of self-contained main-thread uses. Normal and immediate iterator use without consequences that affect the collection are fully supported. The effects following (non-exhaustive) `teleportation`, `death`, and `kicking` are undefined. Any use of this collection from asynchronous threads is unsafe.

For safe consequential iteration or mimicking the old array behavior, using `Collection.toArray(Object[])` is recommended. For making snapshots, `ImmutableList.copyOf(Collection)` is recommended.

Returns:
  a view of currently online players.

### getMaxPlayers

public static int getMaxPlayers()
Get the maximum amount of players which can login to this server.

Returns:
  the amount of players this server allows

### setMaxPlayers

public static void setMaxPlayers(int maxPlayers)
Set the maximum amount of players which can login to this server.

Parameters:
  `maxPlayers` - the amount of players this server allows

### getPort

public static int getPort()
Get the game port that the server runs on.

Returns:
  the port number of this server

### getViewDistance

public static int getViewDistance()
Get the view distance from this server.

Returns:
  the view distance from this server.

### getSimulationDistance

public static int getSimulationDistance()
Get the simulation distance from this server.

Returns:
  the simulation distance from this server.

### getIp

@NotNull public static @NotNull String getIp()
Get the IP that this server is bound to, or empty string if not specified.

Returns:
  the IP string that this server is bound to, otherwise empty string

### getWorldType

@NotNull public static @NotNull String getWorldType()
Get world type (level-type setting) for default world.

Returns:
  the value of level-type (e.g. DEFAULT, FLAT, DEFAULT_1_1)

### getGenerateStructures

public static boolean getGenerateStructures()
Get generate-structures setting.

Returns:
  true if structure generation is enabled, false otherwise

### getMaxWorldSize

public static int getMaxWorldSize()
Get max world size.

Returns:
  the maximum world size as specified for the server

### getAllowEnd

public static boolean getAllowEnd()
Gets whether this server allows the End or not.

Returns:
  whether this server allows the End or not

### getAllowNether

public static boolean getAllowNether()
Gets whether this server allows the Nether or not.

Returns:
  whether this server allows the Nether or not

### getResourcePack

@NotNull public static @NotNull String getResourcePack()
Gets the server resource pack uri, or empty string if not specified.

Returns:
  the server resource pack uri, otherwise empty string

### getResourcePackHash

@NotNull public static @NotNull String getResourcePackHash()
Gets the SHA-1 digest of the server resource pack, or empty string if not specified.

Returns:
  the SHA-1 digest of the server resource pack, otherwise empty string

### getResourcePackPrompt

@NotNull public static @NotNull String getResourcePackPrompt()
Gets the custom prompt message to be shown when the server resource pack is required, or empty string if not specified.

Returns:
  the custom prompt message to be shown when the server resource, otherwise empty string

### isResourcePackRequired

public static boolean isResourcePackRequired()
Gets whether the server resource pack is enforced.

Returns:
  whether the server resource pack is enforced

### hasWhitelist

public static boolean hasWhitelist()
Gets whether this server has a whitelist or not.

Returns:
  whether this server has a whitelist or not

### setWhitelist

public static void setWhitelist(boolean value)
Sets if the server is whitelisted.

Parameters:
  `value` - true for whitelist on, false for off

### isWhitelistEnforced

public static boolean isWhitelistEnforced()
Gets whether the server whitelist is enforced. If the whitelist is enforced, non-whitelisted players will be disconnected when the server whitelist is reloaded.

Returns:
  whether the server whitelist is enforced

### setWhitelistEnforced

public static void setWhitelistEnforced(boolean value)
Sets if the server whitelist is enforced. If the whitelist is enforced, non-whitelisted players will be disconnected when the server whitelist is reloaded.

Parameters:
  `value` - true for enforced, false for not

### getWhitelistedPlayers

@NotNull public static @NotNull Set<OfflinePlayer> getWhitelistedPlayers()
Gets a list of whitelisted players.

Returns:
  a set containing all whitelisted players

### reloadWhitelist

public static void reloadWhitelist()
Reloads the whitelist from disk.

### broadcastMessage

@Deprecated public static int broadcastMessage(@NotNull @NotNull String message)
Deprecated.
in favour of `Server.broadcast(net.kyori.adventure.text.Component)`
Broadcast a message to all players.

This is the same as calling `broadcast(java.lang.String, java.lang.String)` to `Server.BROADCAST_CHANNEL_USERS`

Parameters:
  `message` - the message
Returns:
  the number of players

### broadcast

@Deprecated public static void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component)
Deprecated.
use `sendMessage` methods on `getServer()` that accept `Component`
Sends the component to all online players.

Parameters:
  `component` - the component to send

### broadcast

@Deprecated public static void broadcast(@NotNull @NotNull net.md_5.bungee.api.chat.BaseComponent... components)
Deprecated.
use `sendMessage` methods on `getServer()` that accept `Component`
Sends an array of components as a single message to all online players.

Parameters:
  `components` - the components to send

### getUpdateFolder

@NotNull public static @NotNull String getUpdateFolder()
Gets the name of the update folder. The update folder is used to safely update plugins at the right moment on a plugin load.

The update folder name is relative to the plugins folder.

Returns:
  the name of the update folder

### getUpdateFolderFile

@NotNull public static @NotNull File getUpdateFolderFile()
Gets the update folder. The update folder is used to safely update plugins at the right moment on a plugin load.

Returns:
  the update folder

### getConnectionThrottle

public static long getConnectionThrottle()
Gets the value of the connection throttle setting.

Returns:
  the value of the connection throttle setting

### getTicksPerAnimalSpawns

@Deprecated public static int getTicksPerAnimalSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets default ticks per animal spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn monsters every tick.
- A value of 400 will mean the server will attempt to spawn monsters every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, animal spawning will be disabled. We recommend using spawn-animals to control this instead.

Minecraft default: 400.

Returns:
  the default ticks per animal spawns value

### getTicksPerMonsterSpawns

@Deprecated public static int getTicksPerMonsterSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets the default ticks per monster spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn monsters every tick.
- A value of 400 will mean the server will attempt to spawn monsters every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, monsters spawning will be disabled. We recommend using spawn-monsters to control this instead.

Minecraft default: 1.

Returns:
  the default ticks per monsters spawn value

### getTicksPerWaterSpawns

@Deprecated public static int getTicksPerWaterSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets the default ticks per water mob spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn water mobs every tick.
- A value of 400 will mean the server will attempt to spawn water mobs every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, water mobs spawning will be disabled.

Minecraft default: 1.

Returns:
  the default ticks per water mobs spawn value

### getTicksPerAmbientSpawns

@Deprecated public static int getTicksPerAmbientSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets the default ticks per ambient mob spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn ambient mobs every tick.
- A value of 400 will mean the server will attempt to spawn ambient mobs every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, ambient mobs spawning will be disabled.

Minecraft default: 1.

Returns:
  the default ticks per ambient mobs spawn value

### getTicksPerWaterAmbientSpawns

@Deprecated public static int getTicksPerWaterAmbientSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets the default ticks per water ambient mob spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn water ambient mobs every tick.
- A value of 400 will mean the server will attempt to spawn water ambient mobs every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, ambient mobs spawning will be disabled.

Minecraft default: 1.

Returns:
  the default ticks per water ambient mobs spawn value

### getTicksPerWaterUndergroundCreatureSpawns

@Deprecated public static int getTicksPerWaterUndergroundCreatureSpawns()
Deprecated.
Deprecated in favor of `getTicksPerSpawns(SpawnCategory)`
Gets the default ticks per water underground creature spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn water underground creature every tick.
- A value of 400 will mean the server will attempt to spawn water underground creature every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, water underground creature spawning will be disabled.

Minecraft default: 1.

Returns:
  the default ticks per water underground creature spawn value

### getTicksPerSpawns

public static int getTicksPerSpawns(@NotNull @NotNull SpawnCategory spawnCategory)
Gets the default ticks per `SpawnCategory` spawns value.

Example Usage:

- A value of 1 will mean the server will attempt to spawn `SpawnCategory` mobs every tick.
- A value of 400 will mean the server will attempt to spawn `SpawnCategory` mobs every 400th tick.
- A value below 0 will be reset back to Minecraft's default.

Note: If set to 0, `SpawnCategory` mobs spawning will be disabled.

Minecraft default: 1.
Note: the `SpawnCategory.MISC` are not consider.

Parameters:
  `spawnCategory` - the category of spawn
Returns:
  the default ticks per `SpawnCategory` mobs spawn value

### getPlayer

@Nullable public static @Nullable Player getPlayer(@NotNull @NotNull String name)
Gets a player object by the given username.

This method may not return objects for offline players.

Parameters:
  `name` - the name to look up
Returns:
  a player if one was found, null otherwise

### getPlayerExact

@Nullable public static @Nullable Player getPlayerExact(@NotNull @NotNull String name)
Gets the player with the exact given name, case insensitive.

Parameters:
  `name` - Exact name of the player to retrieve
Returns:
  a player object if one was found, null otherwise

### matchPlayer

@NotNull public static @NotNull List<Player> matchPlayer(@NotNull @NotNull String name)
Attempts to match any players with the given name, and returns a list of all possibly matches.

This list is not sorted in any particular order. If an exact match is found, the returned list will only contain a single result.

Parameters:
  `name` - the (partial) name to match
Returns:
  list of all possible players

### getPlayer

@Nullable public static @Nullable Player getPlayer(@NotNull @NotNull UUID id)
Gets the player with the given UUID.

Parameters:
  `id` - UUID of the player to retrieve
Returns:
  a player object if one was found, null otherwise

### getPlayerUniqueId

@Nullable public static @Nullable UUID getPlayerUniqueId(@NotNull @NotNull String playerName)
Gets the unique ID of the player currently known as the specified player name In Offline Mode, will return an Offline UUID

Parameters:
  `playerName` - the player name to look up the unique ID for
Returns:
  A UUID, or null if that player name is not registered with Minecraft and the server is in online mode

### getPluginManager

@NotNull public static @NotNull PluginManager getPluginManager()
Gets the plugin manager for interfacing with plugins.

Returns:
  a plugin manager for this Server instance

### getScheduler

@NotNull public static @NotNull BukkitScheduler getScheduler()
Gets the scheduler for managing scheduled events.

Returns:
  a scheduling service for this server

### getServicesManager

@NotNull public static @NotNull ServicesManager getServicesManager()
Gets a services manager.

Returns:
  s services manager

### getWorlds

@NotNull public static @NotNull List<World> getWorlds()
Gets a list of all worlds on this server.

Returns:
  a list of worlds

### isTickingWorlds

public static boolean isTickingWorlds()
Gets whether the worlds are being ticked right now.

Returns:
  true if the worlds are being ticked, false otherwise.

### createWorld

@Nullable public static @Nullable World createWorld(@NotNull @NotNull WorldCreator creator)
Creates or loads a world with the given name using the specified options.

If the world is already loaded, it will just return the equivalent of getWorld(creator.name()).

Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend ensuring that you're not un/loading worlds midtick by checking `isTickingWorlds()`

Parameters:
  `creator` - the options to use when creating the world
Returns:
  newly created or loaded world

### unloadWorld

public static boolean unloadWorld(@NotNull @NotNull String name, boolean save)
Unloads a world with the given name.

Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend ensuring that you're not un/loading worlds midtick by checking `isTickingWorlds()`

Parameters:
  `name` - Name of the world to unload
  `save` - whether to save the chunks before unloading
Returns:
  true if successful, false otherwise

### unloadWorld

public static boolean unloadWorld(@NotNull @NotNull World world, boolean save)
Unloads the given world.

Do note that un/loading worlds mid-tick may have potential side effects, we strongly recommend ensuring that you're not un/loading worlds midtick by checking `isTickingWorlds()`

Parameters:
  `world` - the world to unload
  `save` - whether to save the chunks before unloading
Returns:
  true if successful, false otherwise

### getWorld

@Nullable public static @Nullable World getWorld(@NotNull @NotNull String name)
Gets the world with the given name.

Parameters:
  `name` - the name of the world to retrieve
Returns:
  a world with the given name, or null if none exists

### getWorld

@Nullable public static @Nullable World getWorld(@NotNull @NotNull UUID uid)
Gets the world from the given Unique ID.

Parameters:
  `uid` - a unique-id of the world to retrieve
Returns:
  a world with the given Unique ID, or null if none exists

### getWorld

@Nullable public static @Nullable World getWorld(@NotNull @NotNull NamespacedKey worldKey)
Gets the world from the given NamespacedKey

Parameters:
  `worldKey` - the NamespacedKey of the world to retrieve
Returns:
  a world with the given NamespacedKey, or null if none exists

### createWorldBorder

@NotNull public static @NotNull WorldBorder createWorldBorder()
Create a new virtual `WorldBorder`.

Returns:
  the created world border instance
See Also:
  - `Player.setWorldBorder(WorldBorder)`

### getMap

@Deprecated @Nullable public static @Nullable MapView getMap(int id)
Deprecated.
Magic value
Gets the map from the given item ID.

Parameters:
  `id` - the id of the map to get
Returns:
  a map view if it exists, or null otherwise

### createMap

@NotNull public static @NotNull MapView createMap(@NotNull @NotNull World world)
Create a new map with an automatically assigned ID.

Parameters:
  `world` - the world the map will belong to
Returns:
  a newly created map view

### createExplorerMap

@NotNull public static @NotNull ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull @NotNull StructureType structureType)
Create a new explorer map targeting the closest nearby structure of a given `StructureType`.
This method uses implementation default values for radius and findUnexplored (usually 100, true).

Parameters:
  `world` - the world the map will belong to
  `location` - the origin location to find the nearest structure
  `structureType` - the type of structure to find
Returns:
  a newly created item stack
See Also:
  - `World.locateNearestStructure(org.bukkit.Location, org.bukkit.StructureType, int, boolean)`

### createExplorerMap

@NotNull public static @NotNull ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull @NotNull StructureType structureType, int radius, boolean findUnexplored)
Create a new explorer map targeting the closest nearby structure of a given `StructureType`.
This method uses implementation default values for radius and findUnexplored (usually 100, true).

Parameters:
  `world` - the world the map will belong to
  `location` - the origin location to find the nearest structure
  `structureType` - the type of structure to find
  `radius` - radius to search, see World#locateNearestStructure for more information
  `findUnexplored` - whether to find unexplored structures
Returns:
  the newly created item stack
See Also:
  - `World.locateNearestStructure(org.bukkit.Location, org.bukkit.StructureType, int, boolean)`

### reload

public static void reload()
Reloads the server, refreshing settings and plugin information.

### reloadData

public static void reloadData()
Reload only the Minecraft data for the server. This includes custom advancements and loot tables.

### getLogger

@NotNull public static @NotNull Logger getLogger()
Returns the primary logger associated with this server instance.

Returns:
  Logger associated with this server

### getPluginCommand

@Nullable public static @Nullable PluginCommand getPluginCommand(@NotNull @NotNull String name)
Gets a `PluginCommand` with the given name or alias.

Parameters:
  `name` - the name of the command to retrieve
Returns:
  a plugin command if found, null otherwise

### savePlayers

public static void savePlayers()
Writes loaded players to disk.

### dispatchCommand

public static boolean dispatchCommand(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String commandLine) throws CommandException
Dispatches a command on this server, and executes it if found.

Parameters:
  `sender` - the apparent sender of the command
  `commandLine` - the command + arguments. Example: `test abc 123`
Returns:
  returns false if no target is found
Throws:
  `CommandException` - thrown when the executor for the given command fails with an unhandled exception

### addRecipe

@Contract("null -> false") public static boolean addRecipe(@Nullable @Nullable Recipe recipe)
Adds a recipe to the crafting manager.

Parameters:
  `recipe` - the recipe to add
Returns:
  true if the recipe was added, false if it wasn't for some reason

### getRecipesFor

@NotNull public static @NotNull List<Recipe> getRecipesFor(@NotNull @NotNull ItemStack result)
Get a list of all recipes for a given item. The stack size is ignored in comparisons. If the durability is -1, it will match any data value.

Parameters:
  `result` - the item to match against recipe results
Returns:
  a list of recipes with the given result

### getRecipe

@Nullable public static @Nullable Recipe getRecipe(@NotNull @NotNull NamespacedKey recipeKey)
Get the `Recipe` for the given key.

Parameters:
  `recipeKey` - the key of the recipe to return
Returns:
  the recipe for the given key or null.

### getCraftingRecipe

@Nullable public static @Nullable Recipe getCraftingRecipe(@NotNull @NotNull ItemStack[] craftingMatrix, @NotNull @NotNull World world)
Get the `Recipe` for the list of ItemStacks provided.

The list is formatted as a crafting matrix where the index follow the pattern below:

     [ 0 1 2 ]
     [ 3 4 5 ]
     [ 6 7 8 ]

NOTE: This method will not modify the provided ItemStack array, for that, use `craftItem(ItemStack[], World, Player)`.

Parameters:
  `craftingMatrix` - list of items to be crafted from. Must not contain more than 9 items.
  `world` - The world the crafting takes place in.
Returns:
  the `Recipe` resulting from the given crafting matrix.

### craftItem

@NotNull public static @NotNull ItemStack craftItem(@NotNull @NotNull ItemStack[] craftingMatrix, @NotNull @NotNull World world, @NotNull @NotNull Player player)
Get the crafted item using the list of `ItemStack` provided.

The list is formatted as a crafting matrix where the index follow the pattern below:

     [ 0 1 2 ]
     [ 3 4 5 ]
     [ 6 7 8 ]

The `World` and `Player` arguments are required to fulfill the Bukkit Crafting events.

Calls `PrepareItemCraftEvent` to imitate the `Player` initiating the crafting event.

Parameters:
  `craftingMatrix` - list of items to be crafted from. Must not contain more than 9 items.
  `world` - The world the crafting takes place in.
  `player` - The player to imitate the crafting event on.
Returns:
  the `ItemStack` resulting from the given crafting matrix, if no recipe is found an ItemStack of `Material.AIR` is returned.

### recipeIterator

@NotNull public static @NotNull Iterator<Recipe> recipeIterator()
Get an iterator through the list of crafting recipes.

Returns:
  an iterator

### clearRecipes

public static void clearRecipes()
Clears the list of crafting recipes.

### resetRecipes

public static void resetRecipes()
Resets the list of crafting recipes to the default.

### removeRecipe

public static boolean removeRecipe(@NotNull @NotNull NamespacedKey key)
Remove a recipe from the server. Note that removing a recipe may cause permanent loss of data associated with that recipe (eg whether it has been discovered by players).

Parameters:
  `key` - NamespacedKey of recipe to remove.
Returns:
  True if recipe was removed

### getCommandAliases

@NotNull public static @NotNull Map<String,String[]> getCommandAliases()
Gets a list of command aliases defined in the server properties.

Returns:
  a map of aliases to command names

### getSpawnRadius

public static int getSpawnRadius()
Gets the radius, in blocks, around each worlds spawn point to protect.

Returns:
  spawn radius, or 0 if none

### setSpawnRadius

public static void setSpawnRadius(int value)
Sets the radius, in blocks, around each worlds spawn point to protect.

Parameters:
  `value` - new spawn radius, or 0 if none

### shouldSendChatPreviews

@Deprecated public static boolean shouldSendChatPreviews()
Deprecated.
chat previews have been removed
Gets whether the server should send a preview of the player's chat message to the client when the player sends a message

Returns:
  true if the server should send a preview, false otherwise

### isEnforcingSecureProfiles

public static boolean isEnforcingSecureProfiles()
Gets whether the server only allow players with Mojang-signed public key to join

Returns:
  true if only Mojang-signed players can join, false otherwise

### getHideOnlinePlayers

public static boolean getHideOnlinePlayers()
Gets whether the Server hide online players in server status.

Returns:
  true if the server hide online players, false otherwise

### getOnlineMode

public static boolean getOnlineMode()
Gets whether the Server is in online mode or not.

Returns:
  true if the server authenticates clients, false otherwise

### getAllowFlight

public static boolean getAllowFlight()
Gets whether this server allows flying or not.

Returns:
  true if the server allows flight, false otherwise

### isHardcore

public static boolean isHardcore()
Gets whether the server is in hardcore mode or not.

Returns:
  true if the server mode is hardcore, false otherwise

### shutdown

public static void shutdown()
Shutdowns the server, stopping everything.

### broadcast

public static int broadcast(@NotNull Component message)
Broadcast a message to all players.

This is the same as calling `broadcast(net.kyori.adventure.text.Component, java.lang.String)` with the `Server.BROADCAST_CHANNEL_USERS` permission.

Parameters:
  `message` - the message
Returns:
  the number of players

### broadcast

public static int broadcast(@NotNull Component message, @NotNull @NotNull String permission)
Broadcasts the specified message to every user with the given permission name.

Parameters:
  `message` - message to broadcast
  `permission` - the required permission `permissibles` must have to receive the broadcast
Returns:
  number of message recipients

### broadcast

@Deprecated public static int broadcast(@NotNull @NotNull String message, @NotNull @NotNull String permission)
Deprecated.
in favour of `broadcast(net.kyori.adventure.text.Component, String)`
Broadcasts the specified message to every user with the given permission name.

Parameters:
  `message` - message to broadcast
  `permission` - the required permission `permissibles` must have to receive the broadcast
Returns:
  number of message recipients

### getOfflinePlayer

@NotNull public static @NotNull OfflinePlayer getOfflinePlayer(@NotNull @NotNull String name)
Gets the player by the given name, regardless if they are offline or online.

This method may involve a blocking web request to get the UUID for the given name.

This will return an object even if the player does not exist. To this method, all players will exist.

Parameters:
  `name` - the name the player to retrieve
Returns:
  an offline player
See Also:
  - `getOfflinePlayer(java.util.UUID)`

### getOfflinePlayerIfCached

@Nullable public static @Nullable OfflinePlayer getOfflinePlayerIfCached(@NotNull @NotNull String name)
Gets the player by the given name, regardless if they are offline or online.

This will not make a web request to get the UUID for the given name, thus this method will not block. However this method will return `null` if the player is not cached.

Parameters:
  `name` - the name of the player to retrieve
Returns:
  an offline player if cached, `null` otherwise
See Also:
  - `getOfflinePlayer(String)`
  - `getOfflinePlayer(java.util.UUID)`

### getOfflinePlayer

@NotNull public static @NotNull OfflinePlayer getOfflinePlayer(@NotNull @NotNull UUID id)
Gets the player by the given UUID, regardless if they are offline or online.

This will return an object even if the player does not exist. To this method, all players will exist.

Parameters:
  `id` - the UUID of the player to retrieve
Returns:
  an offline player

### createPlayerProfile

@NotNull @Deprecated public static @NotNull PlayerProfile createPlayerProfile(@Nullable @Nullable UUID uniqueId, @Nullable @Nullable String name)
Deprecated.
use `createProfile(UUID, String)`
Creates a new `PlayerProfile`.

Parameters:
  `uniqueId` - the unique id
  `name` - the name
Returns:
  the new PlayerProfile
Throws:
  `IllegalArgumentException` - if both the unique id is `null` and the name is `null` or blank

### createPlayerProfile

@NotNull @Deprecated public static @NotNull PlayerProfile createPlayerProfile(@NotNull @NotNull UUID uniqueId)
Deprecated.
use `createProfile(UUID)`
Creates a new `PlayerProfile`.

Parameters:
  `uniqueId` - the unique id
Returns:
  the new PlayerProfile
Throws:
  `IllegalArgumentException` - if the unique id is `null`

### createPlayerProfile

@NotNull @Deprecated public static @NotNull PlayerProfile createPlayerProfile(@NotNull @NotNull String name)
Deprecated.
use `createProfile(String)`
Creates a new `PlayerProfile`.

Parameters:
  `name` - the name
Returns:
  the new PlayerProfile
Throws:
  `IllegalArgumentException` - if the name is `null` or blank

### getIPBans

@NotNull public static @NotNull Set<String> getIPBans()
Gets a set containing all current IPs that are banned.

Returns:
  a set containing banned IP addresses

### banIP

public static void banIP(@NotNull @NotNull String address)
Bans the specified address from the server.

Parameters:
  `address` - the IP address to ban

### unbanIP

public static void unbanIP(@NotNull @NotNull String address)
Unbans the specified address from the server.

Parameters:
  `address` - the IP address to unban

### getBannedPlayers

@NotNull public static @NotNull Set<OfflinePlayer> getBannedPlayers()
Gets a set containing all banned players.

Returns:
  a set containing banned players

### getBanList

@NotNull public static @NotNull BanList getBanList(@NotNull BanList.Type type)
Gets a ban list for the supplied type.

Bans by name are no longer supported and this method will return null when trying to request them. The replacement is bans by UUID.

Parameters:
  `type` - the type of list to fetch, cannot be null
Returns:
  a ban list of the specified type

### getOperators

@NotNull public static @NotNull Set<OfflinePlayer> getOperators()
Gets a set containing all player operators.

Returns:
  a set containing player operators

### getDefaultGameMode

@NotNull public static @NotNull GameMode getDefaultGameMode()
Gets the default `GameMode` for new players.

Returns:
  the default game mode

### setDefaultGameMode

public static void setDefaultGameMode(@NotNull @NotNull GameMode mode)
Sets the default `GameMode` for new players.

Parameters:
  `mode` - the new game mode

### getConsoleSender

@NotNull public static @NotNull ConsoleCommandSender getConsoleSender()
Gets a `ConsoleCommandSender` that may be used as an input source for this server.

Returns:
  a console command sender

### createCommandSender

@NotNull public static @NotNull CommandSender createCommandSender(@NotNull Consumer<? super Component> feedback)
Creates a special `CommandSender` which redirects command feedback (in the form of chat messages) to the specified listener. The returned sender will have the same effective permissions as `getConsoleSender()`.

Parameters:
  `feedback` - feedback listener
Returns:
  a command sender

### getWorldContainer

@NotNull public static @NotNull File getWorldContainer()
Gets the folder that contains all of the various `World`s.

Returns:
  folder that contains all worlds

### getOfflinePlayers

@NotNull public static @NotNull OfflinePlayer[] getOfflinePlayers()
Gets every player that has ever played on this server.

This method can be expensive as it loads all the player data files from the disk.

Returns:
  an array containing all previous players

### getMessenger

@NotNull public static @NotNull Messenger getMessenger()
Gets the `Messenger` responsible for this server.

Returns:
  messenger responsible for this server

### getHelpMap

@NotNull public static @NotNull HelpMap getHelpMap()
Gets the `HelpMap` providing help topics for this server.

Returns:
  a help map for this server

### createInventory

@NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, @NotNull @NotNull InventoryType type)
Creates an empty inventory with the specified type. If the type is `InventoryType.CHEST`, the new inventory has a size of 27; otherwise the new inventory has the normal size for its type.
`InventoryType.WORKBENCH` will not process crafting recipes if created with this method. Use `HumanEntity.openWorkbench(Location, boolean)` instead.
`InventoryType.ENCHANTING` will not process `ItemStack`s for possible enchanting results. Use `HumanEntity.openEnchanting(Location, boolean)` instead.

Parameters:
  `owner` - the holder of the inventory, or null to indicate no holder
  `type` - the type of inventory to create
Returns:
  a new inventory
Throws:
  `IllegalArgumentException` - if the `InventoryType` cannot be viewed.
See Also:
  - `InventoryType.isCreatable()`

### createInventory

@NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, @NotNull @NotNull InventoryType type, @NotNull Component title)
Creates an empty inventory with the specified type and title. If the type is `InventoryType.CHEST`, the new inventory has a size of 27; otherwise the new inventory has the normal size for its type.
It should be noted that some inventory types do not support titles and may not render with said titles on the Minecraft client.
`InventoryType.WORKBENCH` will not process crafting recipes if created with this method. Use `HumanEntity.openWorkbench(Location, boolean)` instead.
`InventoryType.ENCHANTING` will not process `ItemStack`s for possible enchanting results. Use `HumanEntity.openEnchanting(Location, boolean)` instead.

Parameters:
  `owner` - The holder of the inventory; can be null if there's no holder.
  `type` - The type of inventory to create.
  `title` - The title of the inventory, to be displayed when it is viewed.
Returns:
  The new inventory.
Throws:
  `IllegalArgumentException` - if the `InventoryType` cannot be viewed.
See Also:
  - `InventoryType.isCreatable()`

### createInventory

@Deprecated @NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, @NotNull @NotNull InventoryType type, @NotNull @NotNull String title)
Deprecated.
in favour of `createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
Creates an empty inventory with the specified type and title. If the type is `InventoryType.CHEST`, the new inventory has a size of 27; otherwise the new inventory has the normal size for its type.
It should be noted that some inventory types do not support titles and may not render with said titles on the Minecraft client.
`InventoryType.WORKBENCH` will not process crafting recipes if created with this method. Use `HumanEntity.openWorkbench(Location, boolean)` instead.
`InventoryType.ENCHANTING` will not process `ItemStack`s for possible enchanting results. Use `HumanEntity.openEnchanting(Location, boolean)` instead.

Parameters:
  `owner` - The holder of the inventory; can be null if there's no holder.
  `type` - The type of inventory to create.
  `title` - The title of the inventory, to be displayed when it is viewed.
Returns:
  The new inventory.
Throws:
  `IllegalArgumentException` - if the `InventoryType` cannot be viewed.
See Also:
  - `InventoryType.isCreatable()`

### createInventory

@NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, int size) throws IllegalArgumentException
Creates an empty inventory of type `InventoryType.CHEST` with the specified size.

Parameters:
  `owner` - the holder of the inventory, or null to indicate no holder
  `size` - a multiple of 9 as the size of inventory to create
Returns:
  a new inventory
Throws:
  `IllegalArgumentException` - if the size is not a multiple of 9

### createInventory

@NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, int size, @NotNull Component title) throws IllegalArgumentException
Creates an empty inventory of type `InventoryType.CHEST` with the specified size and title.

Parameters:
  `owner` - the holder of the inventory, or null to indicate no holder
  `size` - a multiple of 9 as the size of inventory to create
  `title` - the title of the inventory, displayed when inventory is viewed
Returns:
  a new inventory
Throws:
  `IllegalArgumentException` - if the size is not a multiple of 9

### createInventory

@Deprecated @NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, int size, @NotNull @NotNull String title) throws IllegalArgumentException
Deprecated.
in favour of `createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)`
Creates an empty inventory of type `InventoryType.CHEST` with the specified size and title.

Parameters:
  `owner` - the holder of the inventory, or null to indicate no holder
  `size` - a multiple of 9 as the size of inventory to create
  `title` - the title of the inventory, displayed when inventory is viewed
Returns:
  a new inventory
Throws:
  `IllegalArgumentException` - if the size is not a multiple of 9

### createMerchant

@NotNull public static @NotNull Merchant createMerchant(@Nullable Component title)
Creates an empty merchant.

Parameters:
  `title` - the title of the corresponding merchant inventory, displayed when the merchant inventory is viewed
Returns:
  a new merchant

### createMerchant

@NotNull @Deprecated public static @NotNull Merchant createMerchant(@Nullable @Nullable String title)
Deprecated.
in favour of `createMerchant(net.kyori.adventure.text.Component)`
Creates an empty merchant.

Parameters:
  `title` - the title of the corresponding merchant inventory, displayed when the merchant inventory is viewed
Returns:
  a new merchant

### getMaxChainedNeighborUpdates

public static int getMaxChainedNeighborUpdates()
Gets the amount of consecutive neighbor updates before skipping additional ones.

Returns:
  the amount of consecutive neighbor updates, if the value is negative then the limit it's not used

### getMonsterSpawnLimit

@Deprecated public static int getMonsterSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Gets user-specified limit for number of monsters that can spawn in a chunk.

Returns:
  the monster spawn limit

### getAnimalSpawnLimit

@Deprecated public static int getAnimalSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Gets user-specified limit for number of animals that can spawn in a chunk.

Returns:
  the animal spawn limit

### getWaterAnimalSpawnLimit

@Deprecated public static int getWaterAnimalSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Gets user-specified limit for number of water animals that can spawn in a chunk.

Returns:
  the water animal spawn limit

### getWaterAmbientSpawnLimit

@Deprecated public static int getWaterAmbientSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Gets user-specified limit for number of water ambient mobs that can spawn in a chunk.

Returns:
  the water ambient spawn limit

### getWaterUndergroundCreatureSpawnLimit

@Deprecated public static int getWaterUndergroundCreatureSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Get user-specified limit for number of water creature underground that can spawn in a chunk.

Returns:
  the water underground creature limit

### getAmbientSpawnLimit

@Deprecated public static int getAmbientSpawnLimit()
Deprecated.
Deprecated in favor of `getSpawnLimit(SpawnCategory)`
Gets user-specified limit for number of ambient mobs that can spawn in a chunk.

Returns:
  the ambient spawn limit

### getSpawnLimit

public static int getSpawnLimit(@NotNull @NotNull SpawnCategory spawnCategory)
Gets user-specified limit for number of `SpawnCategory` mobs that can spawn in a chunk. Note: the `SpawnCategory.MISC` are not consider.

Parameters:
  `spawnCategory` - the category spawn
Returns:
  the `SpawnCategory` spawn limit

### isPrimaryThread

public static boolean isPrimaryThread()
Checks the current thread against the expected primary thread for the server.

Note: this method should not be used to indicate the current synchronized state of the runtime. A current thread matching the main thread indicates that it is synchronized, but a mismatch does not preclude the same assumption.

Returns:
  true if the current thread matches the expected primary thread, false otherwise

### motd

@NotNull public static Component motd()
Gets the message that is displayed on the server list.

Returns:
  the server's MOTD

### getMotd

@NotNull @Deprecated public static @NotNull String getMotd()
Deprecated.
in favour of `motd()`
Gets the message that is displayed on the server list.

Returns:
  the servers MOTD

### shutdownMessage

@Nullable public static Component shutdownMessage()
Gets the default message that is displayed when the server is stopped.

Returns:
  the shutdown message

### getShutdownMessage

@Nullable @Deprecated public static @Nullable String getShutdownMessage()
Deprecated.
in favour of `shutdownMessage()`
Gets the default message that is displayed when the server is stopped.

Returns:
  the shutdown message

### getWarningState

@NotNull public static @NotNull Warning.WarningState getWarningState()
Gets the current warning state for the server.

Returns:
  the configured warning state

### getItemFactory

@NotNull public static @NotNull ItemFactory getItemFactory()
Gets the instance of the item factory (for `ItemMeta`).

Returns:
  the item factory
See Also:
  - `ItemFactory`

### getScoreboardManager

@NotNull public static @NotNull ScoreboardManager getScoreboardManager()
Gets the instance of the scoreboard manager.

This will only exist after the first world has loaded.

Returns:
  the scoreboard manager or null if no worlds are loaded.

### getScoreboardCriteria

@NotNull public static @NotNull Criteria getScoreboardCriteria(@NotNull @NotNull String name)
Get (or create) a new `Criteria` by its name.

Parameters:
  `name` - the criteria name
Returns:
  the criteria
See Also:
  - `Criteria for a list of constants`

### getServerIcon

@Nullable public static @Nullable CachedServerIcon getServerIcon()
Gets an instance of the server's default server-icon.

Returns:
  the default server-icon; null values may be used by the implementation to indicate no defined icon, but this behavior is not guaranteed

### loadServerIcon

@NotNull public static @NotNull CachedServerIcon loadServerIcon(@NotNull @NotNull File file) throws IllegalArgumentException, Exception
Loads an image from a file, and returns a cached image for the specific server-icon.

Size and type are implementation defined. An incompatible file is guaranteed to throw an implementation-defined `Exception`.

Parameters:
  `file` - the file to load the from
Returns:
  a cached server-icon that can be used for a `ServerListPingEvent.setServerIcon(CachedServerIcon)`
Throws:
  `IllegalArgumentException` - if image is null
  `Exception` - if the image does not meet current server server-icon specifications

### loadServerIcon

@NotNull public static @NotNull CachedServerIcon loadServerIcon(@NotNull @NotNull BufferedImage image) throws IllegalArgumentException, Exception
Creates a cached server-icon for the specific image.

Size and type are implementation defined. An incompatible file is guaranteed to throw an implementation-defined `Exception`.

Parameters:
  `image` - the image to use
Returns:
  a cached server-icon that can be used for a `ServerListPingEvent.setServerIcon(CachedServerIcon)`
Throws:
  `IllegalArgumentException` - if image is null
  `Exception` - if the image does not meet current server server-icon specifications

### setIdleTimeout

public static void setIdleTimeout(int threshold)
Set the idle kick timeout. Any players idle for the specified amount of time will be automatically kicked.

A value of 0 will disable the idle kick timeout.

Parameters:
  `threshold` - the idle timeout in minutes

### getIdleTimeout

public static int getIdleTimeout()
Gets the idle kick timeout.

Returns:
  the idle timeout in minutes

### createChunkData

@NotNull public static ChunkGenerator.ChunkData createChunkData(@NotNull @NotNull World world)
Create a ChunkData for use in a generator. See `ChunkGenerator.generateChunkData(org.bukkit.World, java.util.Random, int, int, org.bukkit.generator.ChunkGenerator.BiomeGrid)`

Parameters:
  `world` - the world to create the ChunkData for
Returns:
  a new ChunkData for the world

### createVanillaChunkData

@NotNull @Deprecated(forRemoval=true) public static ChunkGenerator.ChunkData createVanillaChunkData(@NotNull @NotNull World world, int x, int z)
Deprecated, for removal: This API element is subject to removal in a future version.
The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation.
Create a ChunkData for use in a generator, that is populated by the vanilla generator for that world

Parameters:
  `world` - the world to create the ChunkData for
  `x` - the x coordinate of the chunk
  `z` - the z coordinate of the chunk
Returns:
  a new ChunkData for the world

### createBossBar

@NotNull public static @NotNull BossBar createBossBar(@Nullable @Nullable String title, @NotNull @NotNull BarColor color, @NotNull @NotNull BarStyle style, @NotNull @NotNull BarFlag... flags)
Creates a boss bar instance to display to players. The progress defaults to 1.0

Parameters:
  `title` - the title of the boss bar
  `color` - the color of the boss bar
  `style` - the style of the boss bar
  `flags` - an optional list of flags to set on the boss bar
Returns:
  the created boss bar

### createBossBar

@NotNull public static @NotNull KeyedBossBar createBossBar(@NotNull @NotNull NamespacedKey key, @Nullable @Nullable String title, @NotNull @NotNull BarColor color, @NotNull @NotNull BarStyle style, @NotNull @NotNull BarFlag... flags)
Creates a boss bar instance to display to players. The progress defaults to 1.0.
This instance is added to the persistent storage of the server and will be editable by commands and restored after restart.

Parameters:
  `key` - the key of the boss bar that is used to access the boss bar
  `title` - the title of the boss bar
  `color` - the color of the boss bar
  `style` - the style of the boss bar
  `flags` - an optional list of flags to set on the boss bar
Returns:
  the created boss bar

### getBossBars

@NotNull public static @NotNull Iterator<KeyedBossBar> getBossBars()
Gets an unmodifiable iterator through all persistent bossbars.

- not bound to a `Boss`
- not created using `createBossBar(String, BarColor, BarStyle, BarFlag...)`

e.g. bossbars created using the bossbar command

Returns:
  a bossbar iterator

### getBossBar

@Nullable public static @Nullable KeyedBossBar getBossBar(@NotNull @NotNull NamespacedKey key)
Gets the `KeyedBossBar` specified by this key.

- not bound to a `Boss`
- not created using `createBossBar(String, BarColor, BarStyle, BarFlag...)`

e.g. bossbars created using the bossbar command

Parameters:
  `key` - unique bossbar key
Returns:
  bossbar or null if not exists

### removeBossBar

public static boolean removeBossBar(@NotNull @NotNull NamespacedKey key)
Removes a `KeyedBossBar` specified by this key.

- not bound to a `Boss`
- not created using `createBossBar(String, BarColor, BarStyle, BarFlag...)`

e.g. bossbars created using the bossbar command

Parameters:
  `key` - unique bossbar key
Returns:
  true if removal succeeded or false

### getEntity

@Nullable public static @Nullable Entity getEntity(@NotNull @NotNull UUID uuid)
Gets an entity on the server by its UUID

Parameters:
  `uuid` - the UUID of the entity
Returns:
  the entity with the given UUID, or null if it isn't found

### getTPS

@NotNull public static @org.jetbrains.annotations.NotNull double[] getTPS()
Gets the current server TPS

Returns:
  current server TPS (1m, 5m, 15m in Paper-Server)

### getTickTimes

@NotNull public static @org.jetbrains.annotations.NotNull long[] getTickTimes()
Get a sample of the servers last tick times (in nanos)

Returns:
  A sample of the servers last tick times (in nanos)

### getAverageTickTime

public static double getAverageTickTime()
Get the average tick time (in millis)

Returns:
  Average tick time (in millis)

### getAdvancement

@Nullable public static @Nullable Advancement getAdvancement(@NotNull @NotNull NamespacedKey key)
Get the advancement specified by this key.

Parameters:
  `key` - unique advancement key
Returns:
  advancement or null if not exists

### advancementIterator

@NotNull public static @NotNull Iterator<Advancement> advancementIterator()
Get an iterator through all advancements. Advancements cannot be removed from this iterator,

Returns:
  an advancement iterator

### createBlockData

@NotNull public static @NotNull BlockData createBlockData(@NotNull @NotNull Material material)
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.

Parameters:
  `material` - the material
Returns:
  new data instance

### createBlockData

@NotNull public static @NotNull BlockData createBlockData(@NotNull @NotNull Material material, @Nullable @Nullable Consumer<BlockData> consumer)
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.

Parameters:
  `material` - the material
  `consumer` - consumer to run on new instance before returning
Returns:
  new data instance

### createBlockData

@NotNull public static @NotNull BlockData createBlockData(@NotNull @NotNull String data) throws IllegalArgumentException
Creates a new `BlockData` instance with material and properties parsed from provided data.

Parameters:
  `data` - data string
Returns:
  new data instance
Throws:
  `IllegalArgumentException` - if the specified data is not valid

### createBlockData

@NotNull @Contract("null, null -> fail") public static @NotNull BlockData createBlockData(@Nullable @Nullable Material material, @Nullable @Nullable String data) throws IllegalArgumentException
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.

Parameters:
  `material` - the material
  `data` - data string
Returns:
  new data instance
Throws:
  `IllegalArgumentException` - if the specified data is not valid

### getTag

@Nullable public static <T extends Keyed> @Nullable Tag<T> getTag(@NotNull @NotNull String registry, @NotNull @NotNull NamespacedKey tag, @NotNull @NotNull Class<T> clazz)
Gets a tag which has already been defined within the server. Plugins are suggested to use the concrete tags in `Tag` rather than this method which makes no guarantees about which tags are available, and may also be less performant due to lack of caching.
Tags will be searched for in an implementation specific manner, but a path consisting of namespace/tags/registry/key is expected.
Server implementations are allowed to handle only the registries indicated in `Tag`.

Type Parameters:
  `T` - type of the tag
Parameters:
  `registry` - the tag registry to look at
  `tag` - the name of the tag
  `clazz` - the class of the tag entries
Returns:
  the tag or null

### getTags

@NotNull public static <T extends Keyed> @NotNull Iterable<Tag<T>> getTags(@NotNull @NotNull String registry, @NotNull @NotNull Class<T> clazz)
Gets a all tags which have been defined within the server.
Server implementations are allowed to handle only the registries indicated in `Tag`.
No guarantees are made about the mutability of the returned iterator.

Type Parameters:
  `T` - type of the tag
Parameters:
  `registry` - the tag registry to look at
  `clazz` - the class of the tag entries
Returns:
  all defined tags

### getLootTable

@Nullable public static @Nullable LootTable getLootTable(@NotNull @NotNull NamespacedKey key)
Gets the specified `LootTable`.

Parameters:
  `key` - the name of the LootTable
Returns:
  the LootTable, or null if no LootTable is found with that name

### selectEntities

@NotNull public static @NotNull List<Entity> selectEntities(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String selector) throws IllegalArgumentException
Selects entities using the given Vanilla selector.
No guarantees are made about the selector format, other than they match the Vanilla format for the active Minecraft version.
Usually a selector will start with '@', unless selecting a Player in which case it may simply be the Player's name or UUID.
Note that in Vanilla, elevated permissions are usually required to use '@' selectors, but this method should not check such permissions from the sender.

Parameters:
  `sender` - the sender to execute as, must be provided
  `selector` - the selection string
Returns:
  a list of the selected entities. The list will not be null, but no further guarantees are made.
Throws:
  `IllegalArgumentException` - if the selector is malformed in any way or a parameter is null

### getStructureManager

@NotNull public static @NotNull StructureManager getStructureManager()
Gets the structure manager for loading and saving structures.

Returns:
  the structure manager

### getRegistry

@Nullable public static <T extends Keyed> @Nullable Registry<T> getRegistry(@NotNull @NotNull Class<T> tClass)
Returns the registry for the given class.
If no registry is present for the given class null will be returned.
Depending on the implementation not every registry present in `Registry` will be returned by this method.

Type Parameters:
  `T` - type of the registry
Parameters:
  `tClass` - of the registry to get
Returns:
  the corresponding registry or null if not present

### getUnsafe

@Deprecated @NotNull public static @NotNull UnsafeValues getUnsafe()
Deprecated.

Returns:
  the unsafe values instance
See Also:
  - `UnsafeValues`

### getCommandMap

@NotNull public static CommandMap getCommandMap()
Gets the active `CommandMap`

Returns:
  the active command map

### reloadPermissions

public static void reloadPermissions()
Reload the Permissions in permissions.yml

### reloadCommandAliases

public static boolean reloadCommandAliases()
Reload the Command Aliases in commands.yml

Returns:
  Whether the reload was successful

### suggestPlayerNamesWhenNullTabCompletions

public static boolean suggestPlayerNamesWhenNullTabCompletions()
Checks if player names should be suggested when a command returns `null` as their tab completion result.

Returns:
  true if player names should be suggested

### getPermissionMessage

@NotNull @Deprecated public static @NotNull String getPermissionMessage()
Deprecated.
use `permissionMessage()`
Gets the default no permission message used on the server

Returns:
  the default message

### permissionMessage

@NotNull public static Component permissionMessage()
Gets the default no permission message used on the server

Returns:
  the default message

### createProfile

@NotNull public static PlayerProfile createProfile(@NotNull @NotNull UUID uuid)
Creates a PlayerProfile for the specified uuid, with name as null. If a player with the passed uuid exists on the server at the time of creation, the returned player profile will be populated with the properties of said player (including their uuid and name).

Parameters:
  `uuid` - UUID to create profile for
Returns:
  A PlayerProfile object

### createProfile

@NotNull public static PlayerProfile createProfile(@NotNull @NotNull String name)
Creates a PlayerProfile for the specified name, with UUID as null. If a player with the passed name exists on the server at the time of creation, the returned player profile will be populated with the properties of said player (including their uuid and name).

E.g. if the player 'jeb_' is currently playing on the server, calling `createProfile("JEB_")` will yield a profile with the name 'jeb_', their uuid and their textures. To bypass this pre-population on a case-insensitive name match, see `createProfileExact(UUID, String)`.

Parameters:
  `name` - Name to create profile for
Returns:
  A PlayerProfile object

### createProfile

@NotNull public static PlayerProfile createProfile(@Nullable @Nullable UUID uuid, @Nullable @Nullable String name)
Creates a PlayerProfile for the specified name/uuid Both UUID and Name can not be null at same time. One must be supplied. If a player with the passed uuid or name exists on the server at the time of creation, the returned player profile will be populated with the properties of said player (including their uuid and name).

E.g. if the player 'jeb_' is currently playing on the server, calling `createProfile(null, "JEB_")` will yield a profile with the name 'jeb_', their uuid and their textures. To bypass this pre-population on an case-insensitive name match, see `createProfileExact(UUID, String)`.

The name comparison will compare the `String.toLowerCase()` version of both the passed name parameter and a players name to honour the case-insensitive nature of a mojang profile lookup.

Parameters:
  `uuid` - UUID to create profile for
  `name` - Name to create profile for
Returns:
  A PlayerProfile object

### createProfileExact

@NotNull public static PlayerProfile createProfileExact(@Nullable @Nullable UUID uuid, @Nullable @Nullable String name)
Creates an exact PlayerProfile for the specified name/uuid Both UUID and Name can not be null at same time. One must be supplied. If a player with the passed uuid or name exists on the server at the time of creation, the returned player profile will be populated with the properties of said player.

Compared to `createProfile(UUID, String)`, this method will never mutate the passed uuid or name. If a player with either the same uuid or a matching name (case-insensitive) is found on the server, their properties, such as textures, will be pre-populated in the profile, however the passed uuid and name stay intact.

Parameters:
  `uuid` - UUID to create profile for
  `name` - Name to create profile for
Returns:
  A PlayerProfile object

### getCurrentTick

public static int getCurrentTick()

### isStopping

public static boolean isStopping()
Checks if the server is in the process of being shutdown.

Returns:
  true if server is in the process of being shutdown

### getMobGoals

@NotNull public static MobGoals getMobGoals()
Returns the `MobGoals` manager

Returns:
  the mob goals manager

### getDatapackManager

@NotNull public static DatapackManager getDatapackManager()

Returns:
  the datapack manager

### getPotionBrewer

@NotNull public static PotionBrewer getPotionBrewer()
Gets the potion brewer.

Returns:
  the potion brewer

### spigot

@NotNull public static Server.Spigot spigot()