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
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static boolean
addRecipe(Recipe recipe)
Adds a recipe to the crafting manager.static Iterator<Advancement>
advancementIterator()
Get an iterator through all advancements.static void
banIP(String address)
Bans the specified address from the server.static int
broadcast(String message, String permission)
Broadcasts the specified message to every user with the given permission name.static int
broadcastMessage(String message)
Broadcast a message to all players.static void
clearRecipes()
Clears the list of crafting recipes.static BlockData
createBlockData(String data)
Creates a newBlockData
instance with material and properties parsed from provided data.static BlockData
createBlockData(Material material)
Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults.static BlockData
createBlockData(Material material, String data)
Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.static BlockData
createBlockData(Material material, Consumer<BlockData> consumer)
Creates a newBlockData
instance for the specified Material, with all properties initialized to unspecified defaults.static BossBar
createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags)
Creates a boss bar instance to display to players.static KeyedBossBar
createBossBar(NamespacedKey key, String title, BarColor color, BarStyle style, BarFlag... flags)
Creates a boss bar instance to display to players.static ChunkGenerator.ChunkData
createChunkData(World world)
Create a ChunkData for use in a generator.static ItemStack
createExplorerMap(World world, Location location, StructureType structureType)
Create a new explorer map targeting the closest nearby structure of a givenStructureType
.static ItemStack
createExplorerMap(World world, Location location, StructureType structureType, int radius, boolean findUnexplored)
Create a new explorer map targeting the closest nearby structure of a givenStructureType
.static Inventory
createInventory(InventoryHolder owner, int size)
Creates an empty inventory of typeInventoryType.CHEST
with the specified size.static Inventory
createInventory(InventoryHolder owner, int size, String title)
Creates an empty inventory of typeInventoryType.CHEST
with the specified size and title.static Inventory
createInventory(InventoryHolder owner, InventoryType type)
Creates an empty inventory with the specified type.static Inventory
createInventory(InventoryHolder owner, InventoryType type, String title)
Creates an empty inventory with the specified type and title.static MapView
createMap(World world)
Create a new map with an automatically assigned ID.static Merchant
createMerchant(String title)
Creates an empty merchant.static World
createWorld(WorldCreator creator)
Creates or loads a world with the given name using the specified options.static boolean
dispatchCommand(CommandSender sender, String commandLine)
Dispatches a command on this server, and executes it if found.static Advancement
getAdvancement(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()
Gets user-specified limit for number of ambient mobs that can spawn in a chunk.static int
getAnimalSpawnLimit()
Gets user-specified limit for number of animals that can spawn in a chunk.static BanList
getBanList(BanList.Type type)
Gets a ban list for the supplied type.static Set<OfflinePlayer>
getBannedPlayers()
Gets a set containing all banned players.static KeyedBossBar
getBossBar(NamespacedKey key)
Gets theKeyedBossBar
specified by this key.static Iterator<KeyedBossBar>
getBossBars()
Gets an unmodifiable iterator through all persistent bossbars.static String
getBukkitVersion()
Gets the Bukkit version that this server is running.static Map<String,String[]>
getCommandAliases()
Gets a list of command aliases defined in the server properties.static long
getConnectionThrottle()
Gets the value of the connection throttle setting.static ConsoleCommandSender
getConsoleSender()
Gets aConsoleCommandSender
that may be used as an input source for this server.static GameMode
getDefaultGameMode()
Gets the defaultGameMode
for new players.static Entity
getEntity(UUID uuid)
Gets an entity on the server by its UUIDstatic boolean
getGenerateStructures()
Get generate-structures setting.static HelpMap
getHelpMap()
Gets theHelpMap
providing help topics for this server.static int
getIdleTimeout()
Gets the idle kick timeout.static String
getIp()
Get the IP that this server is bound to, or empty string if not specified.static Set<String>
getIPBans()
Gets a set containing all current IPs that are banned.static ItemFactory
getItemFactory()
Gets the instance of the item factory (forItemMeta
).static Logger
getLogger()
Returns the primary logger associated with this server instance.static LootTable
getLootTable(NamespacedKey key)
Gets the specifiedLootTable
.static MapView
getMap(int id)
Deprecated.Magic valuestatic int
getMaxPlayers()
Get the maximum amount of players which can login to this server.static Messenger
getMessenger()
Gets theMessenger
responsible for this server.static int
getMonsterSpawnLimit()
Gets user-specified limit for number of monsters that can spawn in a chunk.static String
getMotd()
Gets the message that is displayed on the server list.static String
getName()
Gets the name of this server implementation.static OfflinePlayer
getOfflinePlayer(String name)
Deprecated.Persistent storage of users should be by UUID as names are no longer unique past a single session.static OfflinePlayer
getOfflinePlayer(UUID id)
Gets the player by the given UUID, regardless if they are offline or online.static 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 Collection<? extends Player>
getOnlinePlayers()
Gets a view of all currently logged in players.static Set<OfflinePlayer>
getOperators()
Gets a set containing all player operators.static Player
getPlayer(String name)
Gets a player object by the given username.static Player
getPlayer(UUID id)
Gets the player with the given UUID.static Player
getPlayerExact(String name)
Gets the player with the exact given name, case insensitive.static PluginCommand
getPluginCommand(String name)
Gets aPluginCommand
with the given name or alias.static PluginManager
getPluginManager()
Gets the plugin manager for interfacing with plugins.static int
getPort()
Get the game port that the server runs on.static List<Recipe>
getRecipesFor(ItemStack result)
Get a list of all recipes for a given item.static BukkitScheduler
getScheduler()
Gets the scheduler for managing scheduled events.static ScoreboardManager
getScoreboardManager()
Gets the instance of the scoreboard manager.static Server
getServer()
Gets the currentServer
singletonstatic CachedServerIcon
getServerIcon()
Gets an instance of the server's default server-icon.static ServicesManager
getServicesManager()
Gets a services manager.static String
getShutdownMessage()
Gets the default message that is displayed when the server is stopped.static int
getSpawnRadius()
Gets the radius, in blocks, around each worlds spawn point to protect.static <T extends Keyed>
Tag<T>getTag(String registry, NamespacedKey tag, Class<T> clazz)
Gets a tag which has already been defined within the server.static <T extends Keyed>
Iterable<Tag<T>>getTags(String registry, Class<T> clazz)
Gets a all tags which have been defined within the server.static int
getTicksPerAnimalSpawns()
Gets default ticks per animal spawns value.static int
getTicksPerMonsterSpawns()
Gets the default ticks per monster spawns value.static UnsafeValues
getUnsafe()
Deprecated.static String
getUpdateFolder()
Gets the name of the update folder.static File
getUpdateFolderFile()
Gets the update folder.static String
getVersion()
Gets the version string of this server implementation.static int
getViewDistance()
Get the view distance from this server.static Warning.WarningState
getWarningState()
Gets the current warning state for the server.static int
getWaterAnimalSpawnLimit()
Gets user-specified limit for number of water animals that can spawn in a chunk.static Set<OfflinePlayer>
getWhitelistedPlayers()
Gets a list of whitelisted players.static World
getWorld(String name)
Gets the world with the given name.static World
getWorld(UUID uid)
Gets the world from the given Unique ID.static File
getWorldContainer()
Gets the folder that contains all of the variousWorld
s.static List<World>
getWorlds()
Gets a list of all worlds on this server.static 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
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 CachedServerIcon
loadServerIcon(BufferedImage image)
Creates a cached server-icon for the specific image.static CachedServerIcon
loadServerIcon(File file)
Loads an image from a file, and returns a cached image for the specific server-icon.static List<Player>
matchPlayer(String name)
Attempts to match any players with the given name, and returns a list of all possibly matches.static Iterator<Recipe>
recipeIterator()
Get an iterator through the list of crafting recipes.static void
reload()
Reloads the server, refreshing settings and plugin information.static void
reloadData()
Reload only the Minecraft data for the server.static void
reloadWhitelist()
Reloads the whitelist from disk.static boolean
removeBossBar(NamespacedKey key)
Removes aKeyedBossBar
specified by this key.static void
resetRecipes()
Resets the list of crafting recipes to the default.static void
savePlayers()
Writes loaded players to disk.static List<Entity>
selectEntities(CommandSender sender, String selector)
Selects entities using the given Vanilla selector.static void
setDefaultGameMode(GameMode mode)
Sets the defaultGameMode
for new players.static void
setIdleTimeout(int threshold)
Set the idle kick timeout.static void
setServer(Server server)
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
shutdown()
Shutdowns the server, stopping everything.static Server.Spigot
spigot()
static void
unbanIP(String address)
Unbans the specified address from the server.static boolean
unloadWorld(String name, boolean save)
Unloads a world with the given name.static boolean
unloadWorld(World world, boolean save)
Unloads the given world.
-
-
-
Method Detail
-
getServer
@NotNull public static Server getServer()
Gets the currentServer
singleton- Returns:
- Server instance being ran
-
setServer
public static void setServer(@NotNull Server server)
Attempts to set theServer
singleton.This cannot be done if the Server is already set.
- Parameters:
server
- Server instance
-
getName
@NotNull public static String getName()
Gets the name of this server implementation.- Returns:
- name of this server implementation
-
getVersion
@NotNull public static String getVersion()
Gets the version string of this server implementation.- Returns:
- version of this server implementation
-
getBukkitVersion
@NotNull public static String getBukkitVersion()
Gets the Bukkit version that this server is running.- Returns:
- version of Bukkit
-
getOnlinePlayers
@NotNull public static Collection<? extends Player> 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
-
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.
-
getIp
@NotNull public static 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 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
-
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
-
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
-
getWhitelistedPlayers
@NotNull public static 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
public static int broadcastMessage(@NotNull String message)
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
-
getUpdateFolder
@NotNull public static 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 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
public static int getTicksPerAnimalSpawns()
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
public static int getTicksPerMonsterSpawns()
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
-
getPlayer
@Nullable public static Player getPlayer(@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 Player getPlayerExact(@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 List<Player> matchPlayer(@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 Player getPlayer(@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
-
getPluginManager
@NotNull public static PluginManager getPluginManager()
Gets the plugin manager for interfacing with plugins.- Returns:
- a plugin manager for this Server instance
-
getScheduler
@NotNull public static BukkitScheduler getScheduler()
Gets the scheduler for managing scheduled events.- Returns:
- a scheduling service for this server
-
getServicesManager
@NotNull public static ServicesManager getServicesManager()
Gets a services manager.- Returns:
- s services manager
-
getWorlds
@NotNull public static List<World> getWorlds()
Gets a list of all worlds on this server.- Returns:
- a list of worlds
-
createWorld
@Nullable public static World createWorld(@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()).
- Parameters:
creator
- the options to use when creating the world- Returns:
- newly created or loaded world
-
unloadWorld
public static boolean unloadWorld(@NotNull String name, boolean save)
Unloads a world with the given name.- Parameters:
name
- Name of the world to unloadsave
- whether to save the chunks before unloading- Returns:
- true if successful, false otherwise
-
unloadWorld
public static boolean unloadWorld(@NotNull World world, boolean save)
Unloads the given world.- Parameters:
world
- the world to unloadsave
- whether to save the chunks before unloading- Returns:
- true if successful, false otherwise
-
getWorld
@Nullable public static World getWorld(@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 World getWorld(@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
-
getMap
@Deprecated @Nullable public static MapView getMap(int id)
Deprecated.Magic valueGets 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 MapView createMap(@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 ItemStack createExplorerMap(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType)
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 find- Returns:
- a newly created item stack
- See Also:
World.locateNearestStructure(org.bukkit.Location, org.bukkit.StructureType, int, boolean)
-
createExplorerMap
@NotNull public static 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 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:
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 Logger getLogger()
Returns the primary logger associated with this server instance.- Returns:
- Logger associated with this server
-
getPluginCommand
@Nullable public static PluginCommand getPluginCommand(@NotNull String name)
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 CommandSender sender, @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
@Contract("null -> false") public static boolean addRecipe(@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 List<Recipe> getRecipesFor(@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
-
recipeIterator
@NotNull public static 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.
-
getCommandAliases
@NotNull public static 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
-
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 String message, @NotNull String permission)
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
@Deprecated @NotNull public static OfflinePlayer getOfflinePlayer(@NotNull String name)
Deprecated.Persistent storage of users should be by UUID as names are no longer unique past a single session.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)
-
getOfflinePlayer
@NotNull public static OfflinePlayer getOfflinePlayer(@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
-
getIPBans
@NotNull public static 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 String address)
Bans the specified address from the server.- Parameters:
address
- the IP address to ban
-
unbanIP
public static void unbanIP(@NotNull String address)
Unbans the specified address from the server.- Parameters:
address
- the IP address to unban
-
getBannedPlayers
@NotNull public static Set<OfflinePlayer> getBannedPlayers()
Gets a set containing all banned players.- Returns:
- a set containing banned players
-
getBanList
@NotNull public static 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 Set<OfflinePlayer> getOperators()
Gets a set containing all player operators.- Returns:
- a set containing player operators
-
getDefaultGameMode
@NotNull public static GameMode getDefaultGameMode()
Gets the defaultGameMode
for new players.- Returns:
- the default game mode
-
setDefaultGameMode
public static void setDefaultGameMode(@NotNull GameMode mode)
Sets the defaultGameMode
for new players.- Parameters:
mode
- the new game mode
-
getConsoleSender
@NotNull public static ConsoleCommandSender getConsoleSender()
Gets aConsoleCommandSender
that may be used as an input source for this server.- Returns:
- a console command sender
-
getWorldContainer
@NotNull public static File getWorldContainer()
Gets the folder that contains all of the variousWorld
s.- Returns:
- folder that contains all worlds
-
getOfflinePlayers
@NotNull public static OfflinePlayer[] getOfflinePlayers()
Gets every player that has ever played on this server.- Returns:
- an array containing all previous players
-
getMessenger
@NotNull public static Messenger getMessenger()
Gets theMessenger
responsible for this server.- Returns:
- messenger responsible for this server
-
getHelpMap
@NotNull public static HelpMap getHelpMap()
Gets theHelpMap
providing help topics for this server.- Returns:
- a help map for this server
-
createInventory
@NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, @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:
InventoryType.isCreatable()
-
createInventory
@NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String 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:
InventoryType.isCreatable()
-
createInventory
@NotNull public static Inventory createInventory(@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 Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String 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
-
createMerchant
@NotNull public static Merchant createMerchant(@Nullable String 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
-
getMonsterSpawnLimit
public static int getMonsterSpawnLimit()
Gets user-specified limit for number of monsters that can spawn in a chunk.- Returns:
- the monster spawn limit
-
getAnimalSpawnLimit
public static int getAnimalSpawnLimit()
Gets user-specified limit for number of animals that can spawn in a chunk.- Returns:
- the animal spawn limit
-
getWaterAnimalSpawnLimit
public static int getWaterAnimalSpawnLimit()
Gets user-specified limit for number of water animals that can spawn in a chunk.- Returns:
- the water animal spawn limit
-
getAmbientSpawnLimit
public static int getAmbientSpawnLimit()
Gets user-specified limit for number of ambient mobs that can spawn in a chunk.- Returns:
- the ambient 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
-
getMotd
@NotNull public static String getMotd()
Gets the message that is displayed on the server list.- Returns:
- the servers MOTD
-
getShutdownMessage
@Nullable public static String getShutdownMessage()
Gets the default message that is displayed when the server is stopped.- Returns:
- the shutdown message
-
getWarningState
@NotNull public static Warning.WarningState getWarningState()
Gets the current warning state for the server.- Returns:
- the configured warning state
-
getItemFactory
@NotNull public static ItemFactory getItemFactory()
Gets the instance of the item factory (forItemMeta
).- Returns:
- the item factory
- See Also:
ItemFactory
-
getScoreboardManager
@Nullable public static 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.
-
getServerIcon
@Nullable public static 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 CachedServerIcon loadServerIcon(@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 CachedServerIcon loadServerIcon(@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
@NotNull public static ChunkGenerator.ChunkData createChunkData(@NotNull World world)
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 BossBar createBossBar(@Nullable String title, @NotNull BarColor color, @NotNull BarStyle style, @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 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. 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
@NotNull public static Iterator<KeyedBossBar> 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
@Nullable public static KeyedBossBar getBossBar(@NotNull NamespacedKey key)
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
public static boolean removeBossBar(@NotNull NamespacedKey key)
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
@Nullable public static Entity getEntity(@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
-
getAdvancement
@Nullable public static Advancement getAdvancement(@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 Iterator<Advancement> advancementIterator()
Get an iterator through all advancements. Advancements cannot be removed from this iterator,- Returns:
- an advancement iterator
-
createBlockData
@NotNull public static BlockData createBlockData(@NotNull Material material)
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 BlockData createBlockData(@NotNull Material material, @Nullable Consumer<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 BlockData createBlockData(@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 BlockData createBlockData(@Nullable Material material, @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> Tag<T> getTag(@NotNull String registry, @NotNull NamespacedKey tag, @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> Iterable<Tag<T>> getTags(@NotNull String registry, @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
@Nullable public static LootTable getLootTable(@NotNull NamespacedKey key)
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 List<Entity> selectEntities(@NotNull CommandSender sender, @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
-
getUnsafe
@Deprecated @NotNull public static UnsafeValues getUnsafe()
Deprecated.- Returns:
- the unsafe values instance
- See Also:
UnsafeValues
-
spigot
@NotNull public static Server.Spigot spigot()
-
-