Skip to main content

Overview

The Server class is the central component that manages everything in PocketMine-MP. It provides access to worlds, players, plugins, commands, and all other core functionality.

Getting the Server Instance

use pocketmine\Server;

$server = Server::getInstance();

Core Methods

getName()

Returns the server software name.
getName() : string
public function getName() : string
Returns: string - Server software name (e.g., “PocketMine-MP”) Example:
$name = $server->getName(); // "PocketMine-MP"

isRunning()

Checks if the server is currently running.
isRunning() : bool
public function isRunning() : bool
Returns: bool - True if server is running

getVersion()

Returns the Minecraft version the server supports.
getVersion() : string
public function getVersion() : string
Returns: string - Minecraft protocol version (e.g., “1.20.0”)

getApiVersion()

Returns the PocketMine-MP API version.
getApiVersion() : string
public function getApiVersion() : string
Returns: string - API version string

Player Management

getOnlinePlayers()

Gets all currently online players.
getOnlinePlayers() : array
public function getOnlinePlayers() : array
Returns: Player[] - Array of online Player objects Example:
foreach($server->getOnlinePlayers() as $player) {
    $player->sendMessage("Hello!");
}

getPlayerExact()

Finds an online player by exact name (case insensitive).
getPlayerExact(string $name) : ?Player
public function getPlayerExact(string $name) : ?Player
name
string
required
The exact player name to search for
Returns: Player|null - Player object if found, null otherwise Example:
$player = $server->getPlayerExact("Steve");
if($player !== null) {
    $player->kick("You have been kicked!");
}

getPlayerByUUID()

Finds an online player by their UUID.
getPlayerByUUID(UuidInterface $uuid) : ?Player
public function getPlayerByUUID(UuidInterface $uuid) : ?Player
uuid
UuidInterface
required
The player’s UUID
Returns: Player|null - Player object if found, null otherwise

getMaxPlayers()

Gets the maximum number of players allowed.
getMaxPlayers() : int
public function getMaxPlayers() : int
Returns: int - Maximum player count

getOfflinePlayer()

Gets offline player data by name.
getOfflinePlayer(string $name) : Player|OfflinePlayer|null
public function getOfflinePlayer(string $name) : Player|OfflinePlayer|null
name
string
required
Player name to look up
Returns: Player|OfflinePlayer|null - Online player, offline player data, or null

World Management

getWorldManager()

Gets the world manager instance.
getWorldManager() : WorldManager
public function getWorldManager() : WorldManager
Returns: WorldManager - The world manager Example:
$worldManager = $server->getWorldManager();
$world = $worldManager->getDefaultWorld();

Plugin Management

getPluginManager()

Gets the plugin manager instance.
getPluginManager() : PluginManager
public function getPluginManager() : PluginManager
Returns: PluginManager - The plugin manager Example:
$pluginManager = $server->getPluginManager();
$plugin = $pluginManager->getPlugin("MyPlugin");

Command Management

getCommandMap()

Gets the command map for registering commands.
getCommandMap() : SimpleCommandMap
public function getCommandMap() : SimpleCommandMap
Returns: SimpleCommandMap - The command map Example:
$commandMap = $server->getCommandMap();
$commandMap->register("myplugin", new MyCommand());

getPluginCommand()

Gets a plugin command by name.
getPluginCommand(string $name) : Command|PluginOwned|null
public function getPluginCommand(string $name)
name
string
required
Command name to search for
Returns: Command|null - Command if found and owned by a plugin

Scheduler

getAsyncPool()

Gets the async task pool for background operations.
getAsyncPool() : AsyncPool
public function getAsyncPool() : AsyncPool
Returns: AsyncPool - The async pool

Server Information

getMotd()

Gets the server’s Message of the Day.
getMotd() : string
public function getMotd() : string
Returns: string - The server MOTD

getIp()

Gets the server’s IPv4 address.
getIp() : string
public function getIp() : string
Returns: string - IPv4 address

getPort()

Gets the server’s IPv4 port.
getPort() : int
public function getPort() : int
Returns: int - Port number

getTick()

Gets the current server tick count.
getTick() : int
public function getTick() : int
Returns: int - Current tick number since server start

getTicksPerSecond()

Gets the current TPS (ticks per second).
getTicksPerSecond() : float
public function getTicksPerSecond() : float
Returns: float - Current TPS value

getTicksPerSecondAverage()

Gets the average TPS.
getTicksPerSecondAverage() : float
public function getTicksPerSecondAverage() : float
Returns: float - Average TPS

Broadcasting

broadcastMessage()

Broadcasts a message to all players.
broadcastMessage(Translatable|string $message, ?array $recipients = null) : int
public function broadcastMessage(Translatable|string $message, ?array $recipients = null) : int
message
string|Translatable
required
Message to broadcast
recipients
CommandSender[]|null
Optional array of specific recipients. Defaults to all players.
Returns: int - Number of recipients who received the message Example:
$count = $server->broadcastMessage("Server restarting in 5 minutes!");
$server->getLogger()->info("Broadcast sent to $count players");

broadcastTitle()

Broadcasts a title to all players.
broadcastTitle(string $title, string $subtitle = "", int $fadeIn = -1, int $stay = -1, int $fadeOut = -1, ?array $recipients = null) : int
public function broadcastTitle(string $title, string $subtitle = "", int $fadeIn = -1, int $stay = -1, int $fadeOut = -1, ?array $recipients = null) : int
title
string
required
Title text
subtitle
string
Subtitle text (default: "")
fadeIn
int
Fade in duration in ticks (default: -1 for client default)
stay
int
Stay duration in ticks (default: -1 for client default)
fadeOut
int
Fade out duration in ticks (default: -1 for client default)
recipients
Player[]|null
Optional array of specific recipients
Returns: int - Number of recipients Example:
$server->broadcastTitle("Welcome!", "Thanks for playing", 10, 60, 10);

Permissions

isOp()

Checks if a player name is an operator.
isOp(string $name) : bool
public function isOp(string $name) : bool
name
string
required
Player name to check
Returns: bool - True if player is an operator

addOp()

Adds a player as an operator.
addOp(string $name) : void
public function addOp(string $name) : void
name
string
required
Player name to make operator

removeOp()

Removes operator status from a player.
removeOp(string $name) : void
public function removeOp(string $name) : void
name
string
required
Player name to remove operator from

isWhitelisted()

Checks if a player is whitelisted.
isWhitelisted(string $name) : bool
public function isWhitelisted(string $name) : bool
name
string
required
Player name to check
Returns: bool - True if whitelisted or whitelist is disabled

addWhitelist()

Adds a player to the whitelist.
addWhitelist(string $name) : void
public function addWhitelist(string $name) : void
name
string
required
Player name to whitelist

removeWhitelist()

Removes a player from the whitelist.
removeWhitelist(string $name) : void
public function removeWhitelist(string $name) : void
name
string
required
Player name to remove from whitelist

Constants

const TARGET_TICKS_PER_SECOND = 20;
const BROADCAST_CHANNEL_ADMINISTRATIVE = "pocketmine.broadcast.admin";
const BROADCAST_CHANNEL_USERS = "pocketmine.broadcast.user";
TARGET_TICKS_PER_SECOND
int
Target server tick rate (20 TPS = 1 tick per 50ms)
BROADCAST_CHANNEL_ADMINISTRATIVE
string
Broadcast channel for administrative messages
BROADCAST_CHANNEL_USERS
string
Broadcast channel for user messages

Build docs developers (and LLMs) love