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

Public Member Functions

 encode ()
 
 length ()
 
 decode ()
 
 clean ()
 
- Public Member Functions inherited from Packet
 encode ()
 
 decode ()
 
 clean ()
 

Data Fields

 $packets = []
 
 $seqNumber
 
- Data Fields inherited from Packet
 $buffer
 
 $sendTime
 

Additional Inherited Members

- Static Public Attributes inherited from Packet
static $ID = -1
 
- Protected Member Functions inherited from Packet
 get ($len)
 
 getLong ($signed=true)
 
 getInt ()
 
 getShort ($signed=true)
 
 getTriad ()
 
 getLTriad ()
 
 getByte ()
 
 getString ()
 
 getAddress (&$addr, &$port, &$version=null)
 
 feof ()
 
 put ($str)
 
 putLong ($v)
 
 putInt ($v)
 
 putShort ($v)
 
 putTriad ($v)
 
 putLTriad ($v)
 
 putByte ($v)
 
 putString ($v)
 
 putAddress ($addr, $port, $version=4)
 
- Protected Attributes inherited from Packet
 $offset = 0
 

Member Function Documentation

◆ clean()

clean ( )
66  {
67  $this->packets = [];
68  $this->seqNumber = null;
69  return parent::clean();
70  }

◆ decode()

decode ( )
50  {
51  parent::decode();
52  $this->seqNumber = $this->getLTriad();
53 
54  while(!$this->feof()){
55  $offset = 0;
56  $data = substr($this->buffer, $this->offset);
57  $packet = EncapsulatedPacket::fromBinary($data, false, $offset);
58  $this->offset += $offset;
59  if(strlen($packet->buffer) === 0){
60  break;
61  }
62  $this->packets[] = $packet;
63  }
64  }

◆ encode()

encode ( )
33  {
34  parent::encode();
35  $this->putLTriad($this->seqNumber);
36  foreach($this->packets as $packet){
37  $this->put($packet instanceof EncapsulatedPacket ? $packet->toBinary() : (string) $packet);
38  }
39  }

◆ length()

length ( )
41  {
42  $length = 4;
43  foreach($this->packets as $packet){
44  $length += $packet instanceof EncapsulatedPacket ? $packet->getTotalLength() : strlen($packet);
45  }
46 
47  return $length;
48  }

Field Documentation

◆ $packets

$packets = []

◆ $seqNumber

$seqNumber

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