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

Public Member Functions

 __construct ($data, $autotimes=5)
 
 onRun ()
 
 getInfo ($ds, $time=1)
 
 onCompletion (Server $server)
 
 decode ($buffer)
 
- Public Member Functions inherited from AsyncTask
 isGarbage ()
 
 setGarbage ()
 
 isFinished ()
 
 run ()
 
 isCrashed ()
 
 getResult ()
 
 cancelRun ()
 
 hasCancelledRun ()
 
 hasResult ()
 
 setResult ($result, $serialize=true)
 
 setTaskId ($taskId)
 
 getTaskId ()
 
 getFromThreadStore ($identifier)
 
 saveToThreadStore ($identifier, $value)
 
 onRun ()
 
 onCompletion (Server $server)
 
 cleanObject ()
 
- Public Member Functions inherited from Threaded
 chunk ($size, bool $preserve=false)
 
 count ()
 
 isRunning ()
 
 isTerminated ()
 
 merge ($from, $overwrite=true)
 
 notify ()
 
 notifyOne ()
 
 offsetGet ($offset)
 
 offsetSet ($offset, $value)
 
 offsetExists ($offset)
 
 offsetUnset ($offset)
 
 pop ()
 
 run ()
 
 shift ()
 
 synchronized (\Closure $function, $args=null)
 
 wait ($timeout)
 
 getRefCount ()
 
 addRef ()
 
 delRef ()
 
 isGarbage ()
 

Data Fields

 $data
 
 $autotimes
 
 $re
 
- Data Fields inherited from AsyncTask
 $worker = null
 

Additional Inherited Members

- Static Public Member Functions inherited from Threaded
static extend ($obj)
 

Constructor & Destructor Documentation

◆ __construct()

__construct (   $data,
  $autotimes = 5 
)

DServerTask constructor.

Parameters
$data
int$autotimes
23  {
24  $this->data = $data;
25  $this->autotimes = $autotimes;
26  }

Member Function Documentation

◆ decode()

decode (   $buffer)
Parameters
$buffer
Returns
array
89  {
90  $redata = [];
91  $redata["packetType"] = ord($buffer{0});
92  $redata["sessionID"] = unpack("N", substr($buffer, 1, 4))[1];
93  $redata["payload"] = rtrim(substr($buffer, 5));
94  return $redata;
95  }

◆ getInfo()

getInfo (   $ds,
  $time = 1 
)
Parameters
$ds
int$time
Returns
array
45  {
46  $tmp = explode(":", $ds);
47  $ip = $tmp[0];
48  $port = $tmp[1];
49  $client = stream_socket_client("udp://" . $ip . ":" . $port, $errno, $errstr); //非阻塞Socket
50  if($client){
51  stream_set_timeout($client, 1);
52  $Handshake_to = "\xFE\xFD" . chr(9) . pack("N", 233);
53  fwrite($client, $Handshake_to);
54  $Handshake_re_1 = fread($client, 65535);
55  if($Handshake_re_1 != ""){
56  $Handshake_re = $this->decode($Handshake_re_1);
57  $Status_to = "\xFE\xFD" . chr(0) . pack("N", 233) . pack("N", $Handshake_re["payload"]);
58  fwrite($client, $Status_to);
59  $Status_re_1 = fread($client, 65535);
60  if($Status_re_1 != ""){
61  $Status_re = $this->decode($Status_re_1);
62  $ServerData = explode("\x00", $Status_re["payload"]);
63  return [$ServerData[3], $ServerData[4]];
64  }
65  }
66  fclose($client);
67  }
68  if($time < $this->autotimes){
69  return $this->getInfo($ds, $time + 1);
70  }elseif($time = $this->autotimes) return [0, 0];
71  return [0, 0];
72  }

◆ onCompletion()

onCompletion ( Server  $server)
Parameters
Server$server
77  {
78  $re = $this->re;
79  if($re[0] > 0) $server->dserverPlayers = $re[0];
80  if($re[1] > 0) $server->dserverAllPlayers = $re[1];
81  //$server->getNetwork()->updateName();
82  }

◆ onRun()

onRun ( )
28  {
29  $re = [0, 0];
30  foreach($this->data as $d){
31  $data = $this->getInfo($d);
32  $re[0] = $re[0] + $data[0];
33  $re[1] = $re[1] + $data[1];
34  }
35  $this->re = (array) $re;
36  }

Field Documentation

◆ $autotimes

$autotimes

◆ $data

$data

◆ $re

$re

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