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!");
}