use pocketmine\network\mcpe\handler\PacketHandler; use function strlen; class ResourcePackChunkDataPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::RESOURCE_PACK_CHUNK_DATA_PACKET; /** @var string */ public $packId; /** @var int */ public $chunkIndex; /** @var int */ public $progress; /** @var string */ public $data; public static function create(string $packId, int $chunkIndex, int $chunkOffset, string $data) : self{ $result = new self; $result->packId = $packId; $result->chunkIndex = $chunkIndex; $result->progress = $chunkOffset; $result->data = $data; return $result; } protected function decodePayload() : void{ $this->packId = $this->getString(); $this->chunkIndex = $this->getLInt(); $this->progress = $this->getLLong(); $this->data = $this->get($this->getLInt()); } protected function encodePayload() : void{ $this->putString($this->packId); $this->putLInt($this->chunkIndex); $this->putLLong($this->progress); $this->putLInt(strlen($this->data)); $this->put($this->data); } public function handle(PacketHandler $handler) : bool{ return $handler->handleResourcePackChunkData($this); } }