QueryInfo->setPlayerList() now accepts string[] instead of Player[] (#5476)

This commit is contained in:
BrandPVP 2022-12-31 16:04:22 +03:00 committed by GitHub
parent 2da9b76452
commit 42db3abf5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,6 +29,7 @@ use pocketmine\plugin\Plugin;
use pocketmine\Server;
use pocketmine\utils\Binary;
use pocketmine\utils\Utils;
use function array_map;
use function chr;
use function count;
use function str_replace;
@ -41,7 +42,7 @@ final class QueryInfo{
private bool $listPlugins;
/** @var Plugin[] */
private array $plugins;
/** @var Player[] */
/** @var string[] */
private array $players;
private string $gametype;
@ -67,7 +68,7 @@ final class QueryInfo{
$this->serverName = $server->getMotd();
$this->listPlugins = $server->getConfigGroup()->getPropertyBool("settings.query-plugins", true);
$this->plugins = $server->getPluginManager()->getPlugins();
$this->players = $server->getOnlinePlayers();
$this->players = array_map(fn(Player $p) => $p->getName(), $server->getOnlinePlayers());
$this->gametype = ($server->getGamemode()->equals(GameMode::SURVIVAL()) || $server->getGamemode()->equals(GameMode::ADVENTURE())) ? "SMP" : "CMP";
$this->version = $server->getVersion();
@ -122,17 +123,17 @@ final class QueryInfo{
}
/**
* @return Player[]
* @return string[]
*/
public function getPlayerList() : array{
return $this->players;
}
/**
* @param Player[] $players
* @param string[] $players
*/
public function setPlayerList(array $players) : void{
Utils::validateArrayValueType($players, function(Player $_) : void{});
Utils::validateArrayValueType($players, function(string $_) : void{});
$this->players = $players;
$this->destroyCache();
}
@ -226,7 +227,7 @@ final class QueryInfo{
$query .= "\x00\x01player_\x00\x00";
foreach($this->players as $player){
$query .= $player->getName() . "\x00";
$query .= $player . "\x00";
}
$query .= "\x00";