use pocketmine\math\Vector3; use pocketmine\network\mcpe\handler\PacketHandler; use pocketmine\network\mcpe\protocol\types\DimensionIds; use pocketmine\network\mcpe\serializer\NetworkBinaryStream; class SpawnParticleEffectPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::SPAWN_PARTICLE_EFFECT_PACKET; /** @var int */ public $dimensionId = DimensionIds::OVERWORLD; //wtf mojang /** @var int */ public $entityUniqueId = -1; //default none /** @var Vector3 */ public $position; /** @var string */ public $particleName; protected function decodePayload(NetworkBinaryStream $in) : void{ $this->dimensionId = $in->getByte(); $this->entityUniqueId = $in->getEntityUniqueId(); $this->position = $in->getVector3(); $this->particleName = $in->getString(); } protected function encodePayload(NetworkBinaryStream $out) : void{ $out->putByte($this->dimensionId); $out->putEntityUniqueId($this->entityUniqueId); $out->putVector3($this->position); $out->putString($this->particleName); } public function handle(PacketHandler $handler) : bool{ return $handler->handleSpawnParticleEffect($this); } }