Class Bukkit
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Adds a recipe to the crafting manager.static boolean
Adds a recipe to the crafting manager.static @NotNull Iterator
<Advancement> Get an iterator through all advancements.static void
Deprecated.static void
banIP
(@NotNull InetAddress address) Bans the specified address from the server.static int
Deprecated.static int
Broadcast a message to all players.static int
Broadcasts the specified message to every user with the given permission name.static void
broadcast
(net.md_5.bungee.api.chat.BaseComponent component) Deprecated.static void
broadcast
(net.md_5.bungee.api.chat.BaseComponent... components) Deprecated.static int
broadcastMessage
(@NotNull String message) Deprecated.in favour ofServer.broadcast(net.kyori.adventure.text.Component)
static void
Clears the list of crafting recipes.Get the crafted item using the list ofItemStack
provided.Get the crafted item using the list ofItemStack
provided.static @NotNull ItemCraftResult
craftItemResult
(@NotNull ItemStack[] craftingMatrix, @NotNull World world) Get the crafted item using the list ofItemStack
provided.static @NotNull ItemCraftResult
Get the crafted item using the list ofItemStack
provided.createBlockData
(@NotNull String data) Creates a newBlockData
instance with material and properties parsed from provided data.createBlockData
(@NotNull Material material) Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults.Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults.createBlockData
(@Nullable Material material, @Nullable String data) Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.createBossBar
(@Nullable String title, @NotNull BarColor color, @NotNull BarStyle style, @NotNull BarFlag... flags) Creates a boss bar instance to display to players.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 ChunkGenerator.ChunkData
createChunkData
(@NotNull World world) Create a ChunkData for use in a generator.static @NotNull CommandSender
createCommandSender
(Consumer<? super Component> feedback) Creates a specialCommandSender
which redirects command feedback (in the form of chat messages) to the specified listener.createExplorerMap
(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType) createExplorerMap
(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType, int radius, boolean findUnexplored) createExplorerMap
(@NotNull World world, @NotNull Location location, StructureType structureType, MapCursor.Type mapIcon) Create a new explorer map targeting the closest nearby structure of a givenStructureType
.createExplorerMap
(@NotNull World world, @NotNull Location location, StructureType structureType, MapCursor.Type mapIcon, int radius, boolean findUnexplored) Create a new explorer map targeting the closest nearby structure of a givenStructureType
.createInventory
(@Nullable InventoryHolder owner, int size) Creates an empty inventory of typeInventoryType.CHEST
with the specified size.createInventory
(@Nullable InventoryHolder owner, int size, @NotNull String title) Deprecated.createInventory
(@Nullable InventoryHolder owner, int size, @NotNull Component title) Creates an empty inventory of typeInventoryType.CHEST
with the specified size and title.createInventory
(@Nullable InventoryHolder owner, @NotNull InventoryType type) Creates an empty inventory with the specified type.createInventory
(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) Deprecated.createInventory
(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull Component title) Creates an empty inventory with the specified type and title.Create a new map with an automatically assigned ID.createMerchant
(@Nullable String title) Deprecated.in favour ofcreateMerchant(net.kyori.adventure.text.Component)
createMerchant
(@Nullable Component title) Creates an empty merchant.static @NotNull PlayerProfile
Deprecated.static @NotNull PlayerProfile
createPlayerProfile
(@NotNull UUID uniqueId) Deprecated.static @NotNull PlayerProfile
createPlayerProfile
(@Nullable UUID uniqueId, @Nullable String name) Deprecated.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.createWorld
(@NotNull WorldCreator creator) Creates or loads a world with the given name using the specified options.static @NotNull WorldBorder
Create a new virtualWorldBorder
.static boolean
dispatchCommand
(@NotNull CommandSender sender, @NotNull String commandLine) Dispatches a command on this server, and executes it if found.static @Nullable Advancement
Get the advancement specified by this key.static boolean
Gets whether this server allows the End or not.static boolean
Gets whether this server allows flying or not.static boolean
Gets whether this server allows the Nether or not.static int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
static AsyncScheduler
Returns the async task scheduler.static double
Get the average tick time (in millis)static <B extends BanList<E>,
E>
BgetBanList
(@NotNull BanListType<B> type) Gets a ban list for the supplied type.static <T extends BanList<?>>
TgetBanList
(BanList.Type type) Deprecated.usegetBanList(io.papermc.paper.ban.BanListType)
to enforce the correct return value at compile time.static @NotNull Set
<OfflinePlayer> Gets a set containing all banned players.static @Nullable KeyedBossBar
Gets theKeyedBossBar
specified by this key.static @NotNull Iterator
<KeyedBossBar> Gets an unmodifiable iterator through all persistent bossbars.Gets the Bukkit version that this server is running.Gets a list of command aliases defined in the server properties.static CommandMap
Gets the activeCommandMap
static long
Gets the value of the connection throttle setting.static @NotNull ConsoleCommandSender
Gets aConsoleCommandSender
that may be used as an input source for this server.getCraftingRecipe
(@NotNull ItemStack[] craftingMatrix, @NotNull World world) Get theRecipe
for the list of ItemStacks provided.static int
static DatapackManager
static @NotNull DataPackManager
Deprecated, for removal: This API element is subject to removal in a future version.Gets the defaultGameMode
for new players.Gets an entity on the server by its UUIDstatic @NotNull EntityFactory
Gets the instance of the entity factory (forEntitySnapshot
).static boolean
Get generate-structures setting.static GlobalRegionScheduler
Returns the global region task scheduler.Gets theHelpMap
providing help topics for this server.static boolean
Gets whether the Server hide online players in server status.static int
Gets the idle kick timeout.getIp()
Get the IP that this server is bound to, or empty string if not specified.Gets a set containing all current IPs that are banned.static @NotNull ItemFactory
Gets the instance of the item factory (forItemMeta
).Returns the primary logger associated with this server instance.Gets the specifiedLootTable
.getMap
(int id) Gets the map from the given item ID.static int
Gets the amount of consecutive neighbor updates before skipping additional ones.static int
Get the maximum amount of players which can login to this server.static int
Get max world size.Gets theMessenger
responsible for this server.Gets the version of game this server implementsstatic MobGoals
Returns theMobGoals
managerstatic int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
getMotd()
Deprecated.in favour ofmotd()
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
Gets the player by the given UUID, regardless if they are offline or online.static @Nullable OfflinePlayer
Gets the player by the given name, regardless if they are offline or online.static @NotNull OfflinePlayer[]
Gets every player that has ever played on this server.static boolean
Gets whether the Server is in online mode or not.static @NotNull Collection
<? extends Player> Gets a view of all currently logged in players.static @NotNull Set
<OfflinePlayer> Gets a set containing all player operators.Deprecated.Gets a player whose name matches the given name closest.Gets the player with the given UUID.getPlayerExact
(@NotNull String name) Gets the player with the exact given name, case insensitive.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 UUIDstatic @Nullable PluginCommand
getPluginCommand
(@NotNull String name) Gets aPluginCommand
with the given name or alias.static @NotNull PluginManager
Gets the plugin manager for interfacing with plugins.Returns the de facto plugins directory, generally used for storing plugin jars to be loaded, as well as theirdata folders
.static int
getPort()
Get the game port that the server runs on.static PotionBrewer
Gets the potion brewer.getRecipe
(@NotNull NamespacedKey recipeKey) Get theRecipe
for the given key.getRecipesFor
(@NotNull ItemStack result) Get a list of all recipes for a given item.static RegionScheduler
Returns the region task scheduler.getRegistry
(@NotNull Class<T> tClass) Deprecated.useRegistryAccess.getRegistry(io.papermc.paper.registry.RegistryKey)
with keys fromRegistryKey
Gets the server resource pack uri, or empty string if not specified.Gets the SHA-1 digest of the server resource pack, or empty string if not specified.Gets the custom prompt message to be shown when the server resource pack is required, or empty string if not specified.static @NotNull BukkitScheduler
Gets the scheduler for managing scheduled events.Get (or create) a newCriteria
by its name.static @NotNull ScoreboardManager
Gets the instance of the scoreboard manager.Gets the currentServer
singletonstatic @Nullable CachedServerIcon
Gets an instance of the server's default server-icon.static @NotNull ServerLinks
Gets the server links which will be sent to clientsstatic @Nullable ResourcePack
Gets the resource pack configured to be sent to clients by the server.static @NotNull ServerTickManager
Get the ServerTick Manager.static @NotNull ServicesManager
Gets a services manager.Deprecated.in favour ofshutdownMessage()
static int
Get the simulation distance from this server.static int
getSpawnLimit
(@NotNull SpawnCategory spawnCategory) Gets user-specified limit for number ofSpawnCategory
mobs that can spawn in a chunk.static int
Gets the radius, in blocks, around each worlds spawn point to protect.static @NotNull StructureManager
Gets the structure manager for loading and saving structures.Gets a tag which has already been defined within the server.Gets a all tags which have been defined within the server.static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static int
getTicksPerSpawns
(@NotNull SpawnCategory spawnCategory) Gets the default ticks perSpawnCategory
spawns value.static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetTicksPerSpawns(SpawnCategory)
static @org.jetbrains.annotations.NotNull long[]
Get a sample of the servers last tick times (in nanos)static @org.jetbrains.annotations.NotNull double[]
getTPS()
Gets the current server TPSstatic @NotNull UnsafeValues
Deprecated.Gets the name of the update folder.Gets the update folder.Gets the version string of this server implementation.Gets message describing the version server is running.static int
Get the view distance from this server.static @NotNull Warning.WarningState
Gets the current warning state for the server.static int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
static int
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
static @NotNull Set
<OfflinePlayer> Gets a list of whitelisted players.Gets the world with the given name.Gets the world from the given Unique ID.Gets the world from the given KeygetWorld
(@NotNull NamespacedKey worldKey) Gets the world from the given NamespacedKeyGets the folder that contains all of the variousWorld
s.Gets a list of all worlds on this server.Get world type (level-type setting) for default world.static boolean
Gets whether this server has a whitelist or not.static boolean
Gets whether this server is allowing connections transferred from other servers.static boolean
Gets whether the server only allow players with Mojang-signed public key to joinstatic boolean
Gets whether the server is in hardcore mode or not.static boolean
Gets whether the server is logging the IP addresses of players.static boolean
isOwnedByCurrentRegion
(@NotNull Location location) Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and block position as included in the specified location.static boolean
isOwnedByCurrentRegion
(@NotNull Location location, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified world and block position as included in the specified location within the specified square radius.static boolean
isOwnedByCurrentRegion
(@NotNull World world, int chunkX, int chunkZ) Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and chunk position.static boolean
isOwnedByCurrentRegion
(@NotNull World world, int chunkX, int chunkZ, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified world and chunk position within the specified square radius.static boolean
isOwnedByCurrentRegion
(@NotNull World world, Position position) Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and block position.static boolean
isOwnedByCurrentRegion
(@NotNull World world, Position position, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified block position within the specified square radius.static boolean
isOwnedByCurrentRegion
(Block block) Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified block position.static boolean
isOwnedByCurrentRegion
(@NotNull Entity entity) Returns whether the current thread is ticking a region and that the region being ticked owns the specified entity.static boolean
Checks the current thread against the expected primary thread for the server.static boolean
Gets whether the server resource pack is enforced.static boolean
Checks if the server is in the process of being shutdown.static boolean
Gets whether the worlds are being ticked right now.static boolean
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.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 void
Set the message that is displayed on the server list.static Component
Gets the default no permission message used on the serverGet an iterator through the list of crafting recipes.static void
reload()
Reloads the server, refreshing settings and plugin information.static boolean
Reload the Command Aliases in commands.ymlstatic void
Reload only the Minecraft data for the server.static void
Reload the Permissions in permissions.ymlstatic void
Reloads the whitelist from disk.static boolean
Removes aKeyedBossBar
specified by this key.static boolean
Remove a recipe from the server.static boolean
removeRecipe
(@NotNull NamespacedKey key, boolean resendRecipes) Remove a recipe from the server.static void
Resets the list of crafting recipes to the default.static void
Writes loaded players to disk.selectEntities
(@NotNull CommandSender sender, @NotNull String selector) Selects entities using the given Vanilla selector.static void
Sets the defaultGameMode
for new players.static void
setIdleTimeout
(int threshold) Set the idle kick timeout.static void
setMaxPlayers
(int maxPlayers) Set the maximum amount of players allowed to be logged in at once.static void
Deprecated.in favour ofmotd(net.kyori.adventure.text.Component)
static void
Attempts to set theServer
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
Deprecated.chat previews have been removedstatic void
shutdown()
Shutdowns the server, stopping everything.Gets the default message that is displayed when the server is stopped.static Server.Spigot
spigot()
static boolean
Checks if player names should be suggested when a command returnsnull
as their tab completion result.static void
Deprecated.static void
unbanIP
(@NotNull InetAddress 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.static void
Updates recipe data and the recipe book for all connected clients.static void
Updates all advancement, tag, and recipe data for all connected clients.
-
Method Details
-
getServer
Gets the currentServer
singleton- Returns:
- Server instance being ran
-
getPluginsFolder
Returns the de facto plugins directory, generally used for storing plugin jars to be loaded, as well as theirdata 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
Attempts to set theServer
singleton.This cannot be done if the Server is already set.
- Parameters:
server
- Server instance
-
getVersionMessage
Gets message describing the version server is running.- Returns:
- message describing the version server is running
-
getName
Gets the name of this server implementation.- Returns:
- name of this server implementation
- See Also:
-
getVersion
Gets the version string of this server implementation.- Returns:
- version of this server implementation
- See Also:
-
getBukkitVersion
Gets the Bukkit version that this server is running.- Returns:
- version of Bukkit
-
getMinecraftVersion
Gets the version of game this server implements- Returns:
- version of game
- See Also:
-
getOnlinePlayers
Gets a view of all currently logged in players. This view is a reused object, making some operations likeCollection.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
orList
), 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
, andkicking
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 allowed to be logged in at once.- Parameters:
maxPlayers
- The maximum amount of concurrent players
-
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
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
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
-
isLoggingIPs
public static boolean isLoggingIPs()Gets whether the server is logging the IP addresses of players.- Returns:
- whether the server is logging the IP addresses of players
-
getInitialEnabledPacks
-
getInitialDisabledPacks
-
getDataPackManager
@NotNull @Deprecated(forRemoval=true, since="1.20") public static @NotNull DataPackManager getDataPackManager()Deprecated, for removal: This API element is subject to removal in a future version.Get the DataPack Manager.- Returns:
- the manager
-
getServerResourcePack
Gets the resource pack configured to be sent to clients by the server.- Returns:
- the resource pack
-
getServerTickManager
Get the ServerTick Manager.- Returns:
- the manager
-
getResourcePack
Gets the server resource pack uri, or empty string if not specified.- Returns:
- the server resource pack uri, otherwise empty 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
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
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.in favour ofServer.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)
toServer.BROADCAST_CHANNEL_USERS
- Parameters:
message
- the message- Returns:
- the number of players
-
broadcast
Deprecated.Sends the component to all online players.- Parameters:
component
- the component to send
-
broadcast
@Deprecated public static void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) Deprecated.Sends an array of components as a single message to all online players.- Parameters:
components
- the components to send
-
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
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.Deprecated in favor ofgetTicksPerSpawns(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.Deprecated in favor ofgetTicksPerSpawns(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.Deprecated in favor ofgetTicksPerSpawns(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.Deprecated in favor ofgetTicksPerSpawns(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.Deprecated in favor ofgetTicksPerSpawns(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.Deprecated in favor ofgetTicksPerSpawns(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
Gets the default ticks perSpawnCategory
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: theSpawnCategory.MISC
are not consider.- Parameters:
spawnCategory
- the category of spawn- Returns:
- the default ticks per
SpawnCategory
mobs spawn value
- A value of 1 will mean the server will attempt to spawn
-
getPlayer
Gets a player whose name matches the given name closest.Use
getPlayerExact(String)
to get the player matching the input exactly andmatchPlayer(String)
if you want a list of all players matching the input.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
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
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
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
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
Gets the plugin manager for interfacing with plugins.- Returns:
- a plugin manager for this Server instance
-
getScheduler
Gets the scheduler for managing scheduled events.- Returns:
- a scheduling service for this server
-
getServicesManager
Gets a services manager.- Returns:
- s services manager
-
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
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
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 unloadsave
- whether to save the chunks before unloading- Returns:
- true if successful, false otherwise
-
unloadWorld
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 unloadsave
- whether to save the chunks before unloading- Returns:
- true if successful, false otherwise
-
getWorld
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
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
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
-
getWorld
Gets the world from the given Key- Parameters:
worldKey
- the Key of the world to retrieve- Returns:
- a world with the given Key, or null if none exists
-
createWorldBorder
Create a new virtualWorldBorder
.- Returns:
- the created world border instance
- See Also:
-
getMap
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
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
@Deprecated @NotNull public static @NotNull ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull @NotNull StructureType structureType) Deprecated.Create a new explorer map targeting the closest nearby structure of a givenStructureType
.- Parameters:
world
- the world the map will belong tolocation
- the origin location to find the nearest structurestructureType
- the type of structure to find- Returns:
- a newly created item stack
- See Also:
-
createExplorerMap
@Deprecated @NotNull public static @NotNull ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull @NotNull StructureType structureType, int radius, boolean findUnexplored) Deprecated.Create a new explorer map targeting the closest nearby structure of a givenStructureType
.
This method uses implementation default values for radius and findUnexplored (usually 100, true).- Parameters:
world
- the world the map will belong tolocation
- the origin location to find the nearest structurestructureType
- the type of structure to findradius
- radius to search, see World#locateNearestStructure for more informationfindUnexplored
- whether to find unexplored structures- Returns:
- the newly created item stack
- See Also:
-
createExplorerMap
@Nullable public static @Nullable ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull StructureType structureType, @NotNull MapCursor.Type mapIcon) Create a new explorer map targeting the closest nearby structure of a givenStructureType
.
This method uses implementation default values for radius and findUnexplored (usually 100, true).- Parameters:
world
- the world the map will belong tolocation
- the origin location to find the nearest structurestructureType
- the type of structure to findmapIcon
- the map icon to use on the map- Returns:
- a newly created item stack or null if it can't find a location
- See Also:
-
createExplorerMap
@Nullable public static @Nullable ItemStack createExplorerMap(@NotNull @NotNull World world, @NotNull @NotNull Location location, @NotNull StructureType structureType, @NotNull MapCursor.Type mapIcon, int radius, boolean findUnexplored) Create a new explorer map targeting the closest nearby structure of a givenStructureType
.- Parameters:
world
- the world the map will belong tolocation
- the origin location to find the nearest structurestructureType
- the type of structure to findmapIcon
- the map icon to use on the mapradius
- radius to search, see World#locateNearestStructure for more informationfindUnexplored
- whether to find unexplored structures- Returns:
- the newly created item stack or null if it can't find a location
- See Also:
-
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. -
updateResources
public static void updateResources()Updates all advancement, tag, and recipe data for all connected clients. Useful for updating clients to new advancements/recipes/tags.- See Also:
-
updateRecipes
public static void updateRecipes()Updates recipe data and the recipe book for all connected clients. Useful for updating clients to new recipes.- See Also:
-
getLogger
Returns the primary logger associated with this server instance.- Returns:
- Logger associated with this server
- See Also:
- API Note:
- This logger is for the Minecraft server software, not for specific plugins. You should
use a logger for a specific plugin, either via
Plugin.getSLF4JLogger()
orPlugin.getLogger()
or create a specific logger for a class via slf4j. That way, log messages contain contextual information about the source of the message.
-
getPluginCommand
Gets aPluginCommand
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 commandcommandLine
- 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
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
-
addRecipe
@Contract("null, _ -> false") public static boolean addRecipe(@Nullable @Nullable Recipe recipe, boolean resendRecipes) Adds a recipe to the crafting manager.- Parameters:
recipe
- the recipe to addresendRecipes
- true to update the client with the full set of recipes- Returns:
- true if the recipe was added, false if it wasn't for some reason
-
getRecipesFor
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
Get theRecipe
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 theRecipe
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.
-
craftItemResult
@NotNull public static @NotNull ItemCraftResult craftItemResult(@NotNull @NotNull ItemStack[] craftingMatrix, @NotNull @NotNull World world, @NotNull @NotNull Player player) Get the crafted item using the list ofItemStack
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
andPlayer
arguments are required to fulfill the Bukkit Crafting events.Calls
PrepareItemCraftEvent
to imitate thePlayer
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:
- resulting
ItemCraftResult
containing the resulting item, matrix and any overflow items.
-
craftItemResult
@NotNull public static @NotNull ItemCraftResult craftItemResult(@NotNull @NotNull ItemStack[] craftingMatrix, @NotNull @NotNull World world) Get the crafted item using the list ofItemStack
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 ]
- 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:
- resulting
ItemCraftResult
containing the resulting item, matrix and any overflow items.
-
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 ofItemStack
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
andPlayer
arguments are required to fulfill the Bukkit Crafting events.Calls
PrepareItemCraftEvent
to imitate thePlayer
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 ofMaterial.AIR
is returned.
-
craftItem
@NotNull public static @NotNull ItemStack craftItem(@NotNull @NotNull ItemStack[] craftingMatrix, @NotNull @NotNull World world) Get the crafted item using the list ofItemStack
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 ]
- 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
ItemStack
resulting from the given crafting matrix, if no recipe is found an ItemStack ofMaterial.AIR
is returned.
-
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
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
-
removeRecipe
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.resendRecipes
- true to update all clients on the new recipe list. Will only update if a recipe was actually removed- Returns:
- True if recipe was removed
-
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.chat previews have been removedGets 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
-
isAcceptingTransfers
public static boolean isAcceptingTransfers()Gets whether this server is allowing connections transferred from other servers.- Returns:
- true if the server accepts transfers, 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
Broadcast a message to all players.This is the same as calling
broadcast(net.kyori.adventure.text.Component, java.lang.String)
with theServer.BROADCAST_CHANNEL_USERS
permission.- Parameters:
message
- the message- Returns:
- the number of players
-
broadcast
Broadcasts the specified message to every user with the given permission name.- Parameters:
message
- message to broadcastpermission
- the required permissionpermissibles
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.Broadcasts the specified message to every user with the given permission name.- Parameters:
message
- message to broadcastpermission
- the required permissionpermissibles
must have to receive the broadcast- Returns:
- number of message recipients
-
getOfflinePlayer
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:
-
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
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(since="1.18.1") public static @NotNull PlayerProfile createPlayerProfile(@Nullable @Nullable UUID uniqueId, @Nullable @Nullable String name) Deprecated.Creates a newPlayerProfile
.- Parameters:
uniqueId
- the unique idname
- the name- Returns:
- the new PlayerProfile
- Throws:
IllegalArgumentException
- if both the unique id isnull
and the name isnull
or blank
-
createPlayerProfile
@NotNull @Deprecated(since="1.18.1") public static @NotNull PlayerProfile createPlayerProfile(@NotNull @NotNull UUID uniqueId) Deprecated.Creates a newPlayerProfile
.- Parameters:
uniqueId
- the unique id- Returns:
- the new PlayerProfile
- Throws:
IllegalArgumentException
- if the unique id isnull
-
createPlayerProfile
@NotNull @Deprecated(since="1.18.1") public static @NotNull PlayerProfile createPlayerProfile(@NotNull @NotNull String name) Deprecated.Creates a newPlayerProfile
.- Parameters:
name
- the name- Returns:
- the new PlayerProfile
- Throws:
IllegalArgumentException
- if the name isnull
or blank
-
getIPBans
Gets a set containing all current IPs that are banned.- Returns:
- a set containing banned IP addresses
-
banIP
Deprecated.Bans the specified address from the server.- Parameters:
address
- the IP address to ban
-
unbanIP
Deprecated.Unbans the specified address from the server.- Parameters:
address
- the IP address to unban
-
banIP
Bans the specified address from the server.- Parameters:
address
- the IP address to ban
-
unbanIP
Unbans the specified address from the server.- Parameters:
address
- the IP address to unban
-
getBannedPlayers
Gets a set containing all banned players.- Returns:
- a set containing banned players
-
getBanList
@NotNull @Deprecated(since="1.20.4") public static <T extends BanList<?>> T getBanList(@NotNull BanList.Type type) Deprecated.usegetBanList(io.papermc.paper.ban.BanListType)
to enforce the correct return value at compile time.Gets a ban list for the supplied type.- Type Parameters:
T
- The ban target- Parameters:
type
- the type of list to fetch, cannot be null- Returns:
- a ban list of the specified type
-
getBanList
Gets a ban list for the supplied type.- Type Parameters:
B
- The ban target- Parameters:
type
- the type of list to fetch, cannot be null- Returns:
- a ban list of the specified type
-
getOperators
Gets a set containing all player operators.- Returns:
- a set containing player operators
-
getDefaultGameMode
Gets the defaultGameMode
for new players.- Returns:
- the default game mode
-
setDefaultGameMode
Sets the defaultGameMode
for new players.- Parameters:
mode
- the new game mode
-
getConsoleSender
Gets aConsoleCommandSender
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 specialCommandSender
which redirects command feedback (in the form of chat messages) to the specified listener. The returned sender will have the same effective permissions asgetConsoleSender()
.- Parameters:
feedback
- feedback listener- Returns:
- a command sender
-
getWorldContainer
Gets the folder that contains all of the variousWorld
s.- Returns:
- folder that contains all worlds
-
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
Gets theMessenger
responsible for this server.- Returns:
- messenger responsible for this server
-
getHelpMap
Gets theHelpMap
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 isInventoryType.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. UseHumanEntity.openWorkbench(Location, boolean)
instead.
InventoryType.ENCHANTING
will not processItemStack
s for possible enchanting results. UseHumanEntity.openEnchanting(Location, boolean)
instead.- Parameters:
owner
- the holder of the inventory, or null to indicate no holdertype
- the type of inventory to create- Returns:
- a new inventory
- Throws:
IllegalArgumentException
- if theInventoryType
cannot be viewed.- See Also:
-
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 isInventoryType.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. UseHumanEntity.openWorkbench(Location, boolean)
instead.
InventoryType.ENCHANTING
will not processItemStack
s for possible enchanting results. UseHumanEntity.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 theInventoryType
cannot be viewed.- See Also:
-
createInventory
@Deprecated @NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, @NotNull @NotNull InventoryType type, @NotNull @NotNull String title) Deprecated.Creates an empty inventory with the specified type and title. If the type isInventoryType.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. UseHumanEntity.openWorkbench(Location, boolean)
instead.
InventoryType.ENCHANTING
will not processItemStack
s for possible enchanting results. UseHumanEntity.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 theInventoryType
cannot be viewed.- See Also:
-
createInventory
@NotNull public static @NotNull Inventory createInventory(@Nullable @Nullable InventoryHolder owner, int size) throws IllegalArgumentException Creates an empty inventory of typeInventoryType.CHEST
with the specified size.- Parameters:
owner
- the holder of the inventory, or null to indicate no holdersize
- 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 typeInventoryType.CHEST
with the specified size and title.- Parameters:
owner
- the holder of the inventory, or null to indicate no holdersize
- a multiple of 9 as the size of inventory to createtitle
- 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.Creates an empty inventory of typeInventoryType.CHEST
with the specified size and title.- Parameters:
owner
- the holder of the inventory, or null to indicate no holdersize
- a multiple of 9 as the size of inventory to createtitle
- 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
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 ofcreateMerchant(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.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
Gets user-specified limit for number of monsters that can spawn in a chunk.- Returns:
- the monster spawn limit
-
getAnimalSpawnLimit
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
Gets user-specified limit for number of animals that can spawn in a chunk.- Returns:
- the animal spawn limit
-
getWaterAnimalSpawnLimit
Deprecated.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
Gets user-specified limit for number of water animals that can spawn in a chunk.- Returns:
- the water animal spawn limit
-
getWaterAmbientSpawnLimit
Deprecated.Deprecated in favor ofgetSpawnLimit(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.Deprecated in favor ofgetSpawnLimit(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.Deprecated in favor ofgetSpawnLimit(SpawnCategory)
Gets user-specified limit for number of ambient mobs that can spawn in a chunk.- Returns:
- the ambient spawn limit
-
getSpawnLimit
Gets user-specified limit for number ofSpawnCategory
mobs that can spawn in a chunk. Note: theSpawnCategory.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
Gets the message that is displayed on the server list.- Returns:
- the server's MOTD
-
motd
Set the message that is displayed on the server list.- Parameters:
motd
- The message to be displayed
-
shutdownMessage
Gets the default message that is displayed when the server is stopped.- Returns:
- the shutdown message
-
getMotd
Deprecated.in favour ofmotd()
Gets the message that is displayed on the server list.- Returns:
- the servers MOTD
-
setMotd
Deprecated.in favour ofmotd(net.kyori.adventure.text.Component)
Set the message that is displayed on the server list.- Parameters:
motd
- The message to be displayed
-
getServerLinks
Gets the server links which will be sent to clients- Returns:
- the server's links
-
getShutdownMessage
Deprecated.in favour ofshutdownMessage()
Gets the default message that is displayed when the server is stopped.- Returns:
- the shutdown message
-
getWarningState
Gets the current warning state for the server.- Returns:
- the configured warning state
-
getItemFactory
Gets the instance of the item factory (forItemMeta
).- Returns:
- the item factory
- See Also:
-
getEntityFactory
Gets the instance of the entity factory (forEntitySnapshot
).- Returns:
- the entity factory
- See Also:
-
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
Get (or create) a newCriteria
by its name.- Parameters:
name
- the criteria name- Returns:
- the criteria
- See Also:
-
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 nullException
- 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 nullException
- 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
Create a ChunkData for use in a generator. SeeChunkGenerator.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
-
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 barcolor
- the color of the boss barstyle
- the style of the boss barflags
- 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 bartitle
- the title of the boss barcolor
- the color of the boss barstyle
- the style of the boss barflags
- an optional list of flags to set on the boss bar- Returns:
- the created boss bar
-
getBossBars
Gets an unmodifiable iterator through all persistent bossbars.- not bound to a
Boss
-
not created using
createBossBar(String, BarColor, BarStyle, BarFlag...)
- Returns:
- a bossbar iterator
- not bound to a
-
getBossBar
Gets theKeyedBossBar
specified by this key.- not bound to a
Boss
-
not created using
createBossBar(String, BarColor, BarStyle, BarFlag...)
- Parameters:
key
- unique bossbar key- Returns:
- bossbar or null if not exists
- not bound to a
-
removeBossBar
Removes aKeyedBossBar
specified by this key.- not bound to a
Boss
-
not created using
createBossBar(String, BarColor, BarStyle, BarFlag...)
- Parameters:
key
- unique bossbar key- Returns:
- true if removal succeeded or false
- not bound to a
-
getEntity
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
Gets the current server TPS- Returns:
- current server TPS (1m, 5m, 15m in Paper-Server)
-
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
Get the advancement specified by this key.- Parameters:
key
- unique advancement key- Returns:
- advancement or null if not exists
-
advancementIterator
Get an iterator through all advancements. Advancements cannot be removed from this iterator,- Returns:
- an advancement iterator
-
createBlockData
Creates a newBlockData
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<? super BlockData> consumer) Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults.- Parameters:
material
- the materialconsumer
- 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 newBlockData
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 newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.- Parameters:
material
- the materialdata
- 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 inTag
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 inTag
.- Type Parameters:
T
- type of the tag- Parameters:
registry
- the tag registry to look attag
- the name of the tagclazz
- 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 inTag
.
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 atclazz
- the class of the tag entries- Returns:
- all defined tags
-
getLootTable
Gets the specifiedLootTable
.- 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 providedselector
- 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
Gets the structure manager for loading and saving structures.- Returns:
- the structure manager
-
getRegistry
@Nullable @Deprecated(since="1.20.6") public static <T extends Keyed> @Nullable Registry<T> getRegistry(@NotNull @NotNull Class<T> tClass) Deprecated.useRegistryAccess.getRegistry(io.papermc.paper.registry.RegistryKey)
with keys fromRegistryKey
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 inRegistry
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.- Returns:
- the unsafe values instance
- See Also:
-
getCommandMap
Gets the activeCommandMap
- 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 returnsnull
as their tab completion result.- Returns:
- true if player names should be suggested
-
getPermissionMessage
Deprecated.Gets the default no permission message used on the server- Returns:
- the default message
-
permissionMessage
Gets the default no permission message used on the server- Returns:
- the default message
-
createProfile
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
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, seecreateProfileExact(UUID, String)
.- Parameters:
name
- Name to create profile for- Returns:
- A PlayerProfile object
- Throws:
IllegalArgumentException
- if the name is longer than 16 charactersIllegalArgumentException
- if the name contains invalid characters
-
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, seecreateProfileExact(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 forname
- Name to create profile for- Returns:
- A PlayerProfile object
- Throws:
IllegalArgumentException
- if the name is longer than 16 charactersIllegalArgumentException
- if the name contains invalid characters
-
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 forname
- Name to create profile for- Returns:
- A PlayerProfile object
- Throws:
IllegalArgumentException
- if the name is longer than 16 charactersIllegalArgumentException
- if the name contains invalid characters
-
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
Returns theMobGoals
manager- Returns:
- the mob goals manager
-
getDatapackManager
- Returns:
- the datapack manager
-
getPotionBrewer
Gets the potion brewer.- Returns:
- the potion brewer
-
getRegionScheduler
Returns the region task scheduler. The region task scheduler can be used to schedule tasks by location to be executed on the region which owns the location.Note: It is entirely inappropriate to use the region scheduler to schedule tasks for entities. If you wish to schedule tasks to perform actions on entities, you should be using
Entity.getScheduler()
as the entity scheduler will "follow" an entity if it is teleported, whereas the region task scheduler will not.If you do not need/want to make your plugin run on Folia, use
getScheduler()
instead.- Returns:
- the region task scheduler
-
getAsyncScheduler
Returns the async task scheduler. The async task scheduler can be used to schedule tasks that execute asynchronously from the server tick process.- Returns:
- the async task scheduler
-
getGlobalRegionScheduler
Returns the global region task scheduler. The global task scheduler can be used to schedule tasks to execute on the global region.The global region is responsible for maintaining world day time, world game time, weather cycle, sleep night skipping, executing commands for console, and other misc. tasks that do not belong to any specific region.
If you do not need/want to make your plugin run on Folia, use
getScheduler()
instead.- Returns:
- the global region scheduler
-
isOwnedByCurrentRegion
public static boolean isOwnedByCurrentRegion(@NotNull @NotNull World world, @NotNull Position position) Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and block position.- Parameters:
world
- Specified world.position
- Specified block position.
-
isOwnedByCurrentRegion
public static boolean isOwnedByCurrentRegion(@NotNull @NotNull World world, @NotNull Position position, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified block position within the specified square radius. Specifically, this function checks that every chunk with position x in [centerX - radius, centerX + radius] and position z in [centerZ - radius, centerZ + radius] is owned by the current ticking region.- Parameters:
world
- Specified world.position
- Specified block position.squareRadiusChunks
- Specified square radius. Must be >= 0. Note that this parameter is not a squared radius, but rather a Chebyshev Distance.
-
isOwnedByCurrentRegion
Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and block position as included in the specified location.- Parameters:
location
- Specified location, must have a non-null world.
-
isOwnedByCurrentRegion
public static boolean isOwnedByCurrentRegion(@NotNull @NotNull Location location, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified world and block position as included in the specified location within the specified square radius. Specifically, this function checks that every chunk with position x in [centerX - radius, centerX + radius] and position z in [centerZ - radius, centerZ + radius] is owned by the current ticking region.- Parameters:
location
- Specified location, must have a non-null world.squareRadiusChunks
- Specified square radius. Must be >= 0. Note that this parameter is not a squared radius, but rather a Chebyshev Distance.
-
isOwnedByCurrentRegion
Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified block position.- Parameters:
block
- Specified block position.
-
isOwnedByCurrentRegion
Returns whether the current thread is ticking a region and that the region being ticked owns the chunk at the specified world and chunk position.- Parameters:
world
- Specified world.chunkX
- Specified x-coordinate of the chunk position.chunkZ
- Specified z-coordinate of the chunk position.
-
isOwnedByCurrentRegion
public static boolean isOwnedByCurrentRegion(@NotNull @NotNull World world, int chunkX, int chunkZ, int squareRadiusChunks) Returns whether the current thread is ticking a region and that the region being ticked owns the chunks centered at the specified world and chunk position within the specified square radius. Specifically, this function checks that every chunk with position x in [centerX - radius, centerX + radius] and position z in [centerZ - radius, centerZ + radius] is owned by the current ticking region.- Parameters:
world
- Specified world.chunkX
- Specified x-coordinate of the chunk position.chunkZ
- Specified z-coordinate of the chunk position.squareRadiusChunks
- Specified square radius. Must be >= 0. Note that this parameter is not a squared radius, but rather a Chebyshev Distance.
-
isOwnedByCurrentRegion
Returns whether the current thread is ticking a region and that the region being ticked owns the specified entity. Note that this function is the only appropriate method of checking for ownership of an entity, as retrieving the entity's location is undefined unless the entity is owned by the current region.- Parameters:
entity
- Specified entity.
-
spigot
-
banIP(InetAddress)