PocketMine-MP 5.15.1 git-5ef247620a7c6301a849b54e5ef1009217729fc8
PurchaseReceiptPacket.php
1<?php
2
3/*
4 * This file is part of BedrockProtocol.
5 * Copyright (C) 2014-2022 PocketMine Team <https://github.com/pmmp/BedrockProtocol>
6 *
7 * BedrockProtocol is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 */
12
13declare(strict_types=1);
14
15namespace pocketmine\network\mcpe\protocol;
16
18use function count;
19
21 public const NETWORK_ID = ProtocolInfo::PURCHASE_RECEIPT_PACKET;
22
24 public array $entries = [];
25
30 public static function create(array $entries) : self{
31 $result = new self;
32 $result->entries = $entries;
33 return $result;
34 }
35
36 protected function decodePayload(PacketSerializer $in) : void{
37 $count = $in->getUnsignedVarInt();
38 for($i = 0; $i < $count; ++$i){
39 $this->entries[] = $in->getString();
40 }
41 }
42
43 protected function encodePayload(PacketSerializer $out) : void{
44 $out->putUnsignedVarInt(count($this->entries));
45 foreach($this->entries as $entry){
46 $out->putString($entry);
47 }
48 }
49
50 public function handle(PacketHandlerInterface $handler) : bool{
51 return $handler->handlePurchaseReceipt($this);
52 }
53}