use pocketmine\network\mcpe\handler\SessionHandler; 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() : void{ $this->enumName = $this->getString(); for($i = 0, $count = $this->getUnsignedVarInt(); $i < $count; ++$i){ $this->values[] = $this->getString(); } $this->type = $this->getByte(); } protected function encodePayload() : void{ $this->putString($this->enumName); $this->putUnsignedVarInt(count($this->values)); foreach($this->values as $v){ $this->putString($v); } $this->putByte($this->type); } public function handle(SessionHandler $handler) : bool{ return $handler->handleUpdateSoftEnum($this); } }