public function decode()
{
$this->command = $this->getString();
$this->overload = $this->getString();
$this->uvarint1 = $this->getUnsignedVarInt();
$this->uvarint2 = $this->getUnsignedVarInt();
$this->bool = (bool) $this->getByte();
$this->uvarint64 = $this->getUnsignedVarInt();
//TODO: varint64
$this->args = json_decode($this->getString());
$this->string4 = $this->getString();
while (!$this->feof()) {
$this->getByte();
//prevent assertion errors. TODO: find out why there are always 3 extra bytes at the end of this packet.
}
}