Cleaned up ping response and added missing fields (#1114)

This commit is contained in:
Dylan K. Taylor 2017-07-04 11:17:47 +01:00 committed by GitHub
parent d474f73665
commit 409fc282d2
3 changed files with 29 additions and 8 deletions

View File

@ -441,6 +441,21 @@ class Server{
return "UNKNOWN"; return "UNKNOWN";
} }
public static function getGamemodeName(int $mode) : string{
switch($mode){
case Player::SURVIVAL:
return "Survival";
case Player::CREATIVE:
return "Creative";
case Player::ADVENTURE:
return "Adventure";
case Player::SPECTATOR:
return "Spectator";
default:
throw new \InvalidArgumentException("Invalid gamemode $mode");
}
}
/** /**
* Parses a string and returns a gamemode integer, -1 if not found * Parses a string and returns a gamemode integer, -1 if not found
* *

View File

@ -58,7 +58,7 @@ interface SourceInterface{
/** /**
* @param string $name * @param string $name
*/ */
public function setName($name); public function setName(string $name);
/** /**
* @return bool * @return bool

View File

@ -165,15 +165,21 @@ class RakLibInterface implements ServerInstance, AdvancedSourceInterface{
} }
public function setName($name){ public function setName(string $name){
$info = $this->server->getQueryInformation(); $info = $this->server->getQueryInformation();
$this->interface->sendOption("name", $this->interface->sendOption("name", implode(";",
"MCPE;" . rtrim(addcslashes($name, ";"), '\\') . ";" . [
ProtocolInfo::CURRENT_PROTOCOL . ";" . "MCPE",
ProtocolInfo::MINECRAFT_VERSION_NETWORK . ";" . rtrim(addcslashes($name, ";"), '\\'),
$info->getPlayerCount() . ";" . ProtocolInfo::CURRENT_PROTOCOL,
$info->getMaxPlayerCount() ProtocolInfo::MINECRAFT_VERSION_NETWORK,
$info->getPlayerCount(),
$info->getMaxPlayerCount(),
"-1",
$this->server->getName(),
Server::getGamemodeName($this->server->getGamemode())
])
); );
} }