GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
QueryRegenerateEvent Class Reference

Public Member Functions

 __construct (Server $server, $timeout=5)
 
 getTimeout ()
 
 setTimeout ($timeout)
 
 getServerName ()
 
 setServerName ($serverName)
 
 canListPlugins ()
 
 setListPlugins ($value)
 
 getPlugins ()
 
 setPlugins (array $plugins)
 
 getPlayerList ()
 
 setPlayerList (array $players)
 
 getPlayerCount ()
 
 setPlayerCount ($count)
 
 getMaxPlayerCount ()
 
 setMaxPlayerCount ($count)
 
 getWorld ()
 
 setWorld ($world)
 
 getExtraData ()
 
 setExtraData (array $extraData)
 
 getLongQuery ()
 
 getShortQuery ()
 
- Public Member Functions inherited from Event
 getEventName ()
 
 getHandlers ()
 

Data Fields

const GAME_ID = "MINECRAFTPE"
 

Static Public Attributes

static $handlerList = null
 

Additional Inherited Members

- Protected Attributes inherited from Event
 $eventName = null
 

Constructor & Destructor Documentation

◆ __construct()

__construct ( Server  $server,
  $timeout = 5 
)

QueryRegenerateEvent constructor.

Parameters
Server$server
int$timeout
59  {
60  $this->timeout = $timeout;
61  $this->serverName = $server->getMotd();
62  $this->listPlugins = $server->getProperty("settings.query-plugins", true);
63  $this->plugins = $server->getPluginManager()->getPlugins();
64  $this->players = [];
65  foreach($server->getOnlinePlayers() as $player){
66  if($player->isOnline()){
67  $this->players[] = $player;
68  }
69  }
70 
71  if($server->isDServerEnabled() and $server->dserverConfig["queryMaxPlayers"]) $pc = $server->dserverConfig["queryMaxPlayers"];
72  elseif($server->isDServerEnabled() and $server->dserverConfig["queryAllPlayers"]) $pc = $server->getDServerMaxPlayers();
73  else $pc = $server->getMaxPlayers();
74 
75  if($server->isDServerEnabled() and $server->dserverConfig["queryPlayers"]) $poc = $server->getDServerOnlinePlayers();
76  else $poc = count($this->players);
77 
78  $this->gametype = ($server->getGamemode() & 0x01) === 0 ? "SMP" : "CMP";
79  $this->version = $server->getVersion();
80  $this->server_engine = $server->getName() . " " . $server->getPocketMineVersion();
81  $this->map = $server->getDefaultLevel() === null ? "unknown" : $server->getDefaultLevel()->getName();
82  $this->numPlayers = $poc;
83  $this->maxPlayers = $pc;
84  $this->whitelist = $server->hasWhitelist() ? "on" : "off";
85  $this->port = $server->getPort();
86  $this->ip = $server->getIp();
87 
88  }

Member Function Documentation

◆ canListPlugins()

canListPlugins ( )
Returns
mixed
123  {
124  return $this->listPlugins;
125  }

◆ getExtraData()

getExtraData ( )

Returns the extra Query data in key => value form

Returns
array
209  {
210  return $this->extraData;
211  }

◆ getLongQuery()

getLongQuery ( )
Returns
string
223  {
224  $query = "";
225 
226  $plist = $this->server_engine;
227  if(count($this->plugins) > 0 and $this->listPlugins){
228  $plist .= ":";
229  foreach($this->plugins as $p){
230  $d = $p->getDescription();
231  $plist .= " " . str_replace([";", ":", " "], ["", "", "_"], $d->getName()) . " " . str_replace([";", ":", " "], ["", "", "_"], $d->getVersion()) . ";";
232  }
233  $plist = substr($plist, 0, -1);
234  }
235 
236  $KVdata = [
237  "splitnum" => chr(128),
238  "hostname" => $this->serverName,
239  "gametype" => $this->gametype,
240  "game_id" => self::GAME_ID,
241  "version" => $this->version,
242  "server_engine" => $this->server_engine,
243  "plugins" => $plist,
244  "map" => $this->map,
245  "numplayers" => $this->numPlayers,
246  "maxplayers" => $this->maxPlayers,
247  "whitelist" => $this->whitelist,
248  "hostip" => $this->ip,
249  "hostport" => $this->port
250  ];
251 
252  foreach($KVdata as $key => $value){
253  $query .= $key . "\x00" . $value . "\x00";
254  }
255 
256  foreach($this->extraData as $key => $value){
257  $query .= $key . "\x00" . $value . "\x00";
258  }
259 
260  $query .= "\x00\x01player_\x00\x00";
261  foreach($this->players as $player){
262  $query .= $player->getName() . "\x00";
263  }
264  $query .= "\x00";
265 
266  return $query;
267  }

◆ getMaxPlayerCount()

getMaxPlayerCount ( )
Returns
int
179  {
180  return $this->maxPlayers;
181  }

◆ getPlayerCount()

getPlayerCount ( )
Returns
int
165  {
166  return $this->numPlayers;
167  }

◆ getPlayerList()

getPlayerList ( )
Returns
[]
151  {
152  return $this->players;
153  }

◆ getPlugins()

getPlugins ( )
Returns
[]
137  {
138  return $this->plugins;
139  }

◆ getServerName()

getServerName ( )
Returns
string
109  {
110  return $this->serverName;
111  }

◆ getShortQuery()

getShortQuery ( )
Returns
string
272  {
273  return $this->serverName . "\x00" . $this->gametype . "\x00" . $this->map . "\x00" . $this->numPlayers . "\x00" . $this->maxPlayers . "\x00" . Binary::writeLShort($this->port) . $this->ip . "\x00";
274  }

◆ getTimeout()

getTimeout ( )

Gets the min. timeout for Query Regeneration

Returns
int
95  {
96  return $this->timeout;
97  }

◆ getWorld()

getWorld ( )
Returns
string
193  {
194  return $this->map;
195  }

◆ setExtraData()

setExtraData ( array  $extraData)
Parameters
array$extraData
216  {
217  $this->extraData = $extraData;
218  }

◆ setListPlugins()

setListPlugins (   $value)
Parameters
$value
130  {
131  $this->listPlugins = (bool) $value;
132  }

◆ setMaxPlayerCount()

setMaxPlayerCount (   $count)
Parameters
$count
186  {
187  $this->maxPlayers = (int) $count;
188  }

◆ setPlayerCount()

setPlayerCount (   $count)
Parameters
$count
172  {
173  $this->numPlayers = (int) $count;
174  }

◆ setPlayerList()

setPlayerList ( array  $players)
Parameters
158  {
159  $this->players = $players;
160  }

◆ setPlugins()

setPlugins ( array  $plugins)
Parameters
144  {
145  $this->plugins = $plugins;
146  }

◆ setServerName()

setServerName (   $serverName)
Parameters
$serverName
116  {
117  $this->serverName = $serverName;
118  }

◆ setTimeout()

setTimeout (   $timeout)
Parameters
$timeout
102  {
103  $this->timeout = $timeout;
104  }

◆ setWorld()

setWorld (   $world)
Parameters
$world
200  {
201  $this->map = (string) $world;
202  }

Field Documentation

◆ $handlerList

$handlerList = null
static

◆ GAME_ID

const GAME_ID = "MINECRAFTPE"

The documentation for this class was generated from the following file: