adrien-nf/minecraft-server-status

Get informations from a Minecraft server in real time.

1.0.1 2023-08-06 03:02 UTC

This package is auto-updated.

Last update: 2024-05-06 19:42:36 UTC


README

Get informations from a Minecraft server in real time.

Installation

Via composer

composer require adrien-nf/minecraft-server-status

Usage

Server List Ping

No configuration needed from the server, this is the easiest method.

use Ping\Ping;

$infos = (new Ping("localhost", 25565))->getInfos();

echo $infos->getVersion(); // 1.20.1
echo $infos->getServerType(); // Vanilla
echo $infos->getMotd(); // A Minecraft Server
echo $infos->getMaxPlayers(); // 20
echo $infos->getPlayersCount(); // 3
echo $infos->getIp(); // localhost
echo $infos->getPort(); // 25565

// With Ping, you only get a partial player list
var_dump($infos->getPlayers()); // ["Notch", "Deadmau5"]

// Some helper functions
echo $infos->isPlayerConnected("Notch"); // true
echo $infos->isVanilla(); // true
echo $infos->isBukkit(); // false
echo $infos->isSpigot(); // false
echo $infos->isPaper(); // false

Query

Requires configuration in server.properties:

  • enable-query=true
  • query.port=25565

Once this is done, usage is pretty straightforward.

use Queries\JavaServerQuery;

$infos = (new JavaServerQuery("localhost", 25565))->getInfos();

echo $infos->getGameType(); // SMP
echo $infos->getWorldName(); // world

// With Query, you get a full players list
var_dump($infos->getPlayers()); // ["Notch", "Deadmau5", "Jeb"]
var_dump($infos->getPlugins()); // [["name" => "Shopkeepers", "version" => "2.17.1"], ["name" => "HolographicDisplays", "version" => "3.0.2"]]

// Some helper functions
echo $infos->getPluginsAsString(); // "Shopkeepers, HolographicDisplays"
echo $infos->getPluginsAsString(true); // "Shopkeepers 2.17.1, HolographicDisplays 3.0.2"
echo $infos->hasPlugin("Shopkeepers"); // true
var_dump($infos->getPluginsAsArray()) // ["Shopkeepers", "HolographicDisplays"]
var_dump($infos->getPluginsAsArray(true)) // ["Shopkeepers 2.17.1", "HolographicDisplays 3.0.2"]

Credits

This package has been inspired by xPaw's package, extended and corrected for simpler usage.