public function encodePacket() { $packetIDVarInt = VarInt::writeUnsignedVarInt($this->getPacketID()); $encodedPacket = $this->encodeContents(); $packetLengthVarInt = VarInt::writeUnsignedVarInt(strlen($encodedPacket) + $packetIDVarInt->getDataLength()); return $packetLengthVarInt->getEncoded() . $packetIDVarInt->getEncoded() . $encodedPacket; }
/** * Get the encoded contents of the packet (minus packetID/length) * @return String */ protected function encodeContents() { $serverIDEncoded = StringType::write($this->serverID); $encodedPublicKey = base64_decode($this->getPublicKey()); $publicKeyLength = VarInt::writeUnsignedVarInt(strlen($encodedPublicKey)); $encodedToken = $this->getToken(); $tokenLength = VarInt::writeUnsignedVarInt(strlen($encodedToken)); return $serverIDEncoded->getEncoded() . $publicKeyLength->getEncoded() . $encodedPublicKey . $tokenLength->getEncoded() . $encodedToken; }