use pocketmine\network\mcpe\handler\PacketHandler; use pocketmine\network\mcpe\serializer\NetworkBinaryStream; use function count; class UpdateSoftEnumPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::UPDATE_SOFT_ENUM_PACKET; public const TYPE_ADD = 0; public const TYPE_REMOVE = 1; public const TYPE_SET = 2; /** @var string */ public $enumName; /** @var string[] */ public $values = []; /** @var int */ public $type; protected function decodePayload(NetworkBinaryStream $in) : void{ $this->enumName = $in->getString(); for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){ $this->values[] = $in->getString(); } $this->type = $in->getByte(); } protected function encodePayload(NetworkBinaryStream $out) : void{ $out->putString($this->enumName); $out->putUnsignedVarInt(count($this->values)); foreach($this->values as $v){ $out->putString($v); } $out->putByte($this->type); } public function handle(PacketHandler $handler) : bool{ return $handler->handleUpdateSoftEnum($this); } }