jasonwynn10 / libpmquery
一个 PocketMine 服务器插件,允许插件查询其他服务器获取信息
此包的官方仓库似乎已不存在,因此该包已被冻结。
0.1.0
2022-04-19 22:51 UTC
This package is auto-updated.
Last update: 2023-05-20 01:26:11 UTC
README
一个 PocketMine 服务器插件,允许插件查询其他服务器获取一系列信息
基本使用方法
此插件是为开发者轻松查询 Pocketmine-MP 服务器而制作的。以下是一些基本功能:通过运行以下命令将其用作 composer 库
composer require jasonwynn10/libpmquery
必需导入
以下导入是使用插件库所必需的
use libpmquery\PMQuery; use libpmquery\PmQueryException;
API
查询 API 是一个函数,可以从你输入的任何服务器获取数据。使用方法如下
$query = PMQuery::query("my.server.net", 19132);
返回的值将遵循以下值/类型
$query['GameName']; // Returns the server software being used $query['HostName']; // Returns the server host name $query['Protocol']; // Returns the protocol version allowed to connect $query['Version']; // Returns the client version allowed to connect $query['Players']; // Returns the number of players on the server currently $query['MaxPlayers']; // Returns the maximum player count of the server $query['ServerId']; // Returns the raknet server id $query['Map']; // Returns the default world name $query['GameMode']; // Returns the default gamemode $query['NintendoLimited']; // Returns the status of Nintendo's limitation to join $query['IPv4Port']; // Returns the ipv4 port number $query['IPv6Port']; // Returns the ipv6 port number $query['Extra']; // I still don't know what this info is
离线查询
发送到离线服务器的查询总是会抛出 PmQueryException。异常可以通过 try/catch 语句捕获以记录其离线状态。
try{ $query = PMQuery::query("my.server.net", 19133); $players = (int) $query['Players']; Server::getInstance()->getLogger()->info("There are ".$players." on the queried server right now!"); }catch(PmQueryException $e){ //you can choose to log this if you want Server::getInstance()->getLogger()->info("The queried server is offline right now!"); }