use pocketmine\math\Vector3; use pocketmine\network\mcpe\NetworkSession; class AddPaintingPacket extends DataPacket{ public const NETWORK_ID = ProtocolInfo::ADD_PAINTING_PACKET; /** @var int|null */ public $entityUniqueId = null; /** @var int */ public $entityRuntimeId; /** @var Vector3 */ public $position; /** @var int */ public $direction; /** @var string */ public $title; protected function decodePayload(){ $this->entityUniqueId = $this->getEntityUniqueId(); $this->entityRuntimeId = $this->getEntityRuntimeId(); $this->position = $this->getVector3(); $this->direction = $this->getVarInt(); $this->title = $this->getString(); } protected function encodePayload(){ $this->putEntityUniqueId($this->entityUniqueId ?? $this->entityRuntimeId); $this->putEntityRuntimeId($this->entityRuntimeId); $this->putVector3($this->position); $this->putVarInt($this->direction); $this->putString($this->title); } public function handle(NetworkSession $session) : bool{ return $session->handleAddPainting($this); } }