PocketMine-MP 5.15.1 git-08c6e63aac45a450fe3b437616ee8aa2500e04e2
RespawnPacket.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
19
21 public const NETWORK_ID = ProtocolInfo::RESPAWN_PACKET;
22
23 public const SEARCHING_FOR_SPAWN = 0;
24 public const READY_TO_SPAWN = 1;
25 public const CLIENT_READY_TO_SPAWN = 2;
26
27 public Vector3 $position;
28 public int $respawnState = self::SEARCHING_FOR_SPAWN;
29 public int $actorRuntimeId;
30
34 public static function create(Vector3 $position, int $respawnState, int $actorRuntimeId) : self{
35 $result = new self;
36 $result->position = $position;
37 $result->respawnState = $respawnState;
38 $result->actorRuntimeId = $actorRuntimeId;
39 return $result;
40 }
41
42 protected function decodePayload(PacketSerializer $in) : void{
43 $this->position = $in->getVector3();
44 $this->respawnState = $in->getByte();
45 $this->actorRuntimeId = $in->getActorRuntimeId();
46 }
47
48 protected function encodePayload(PacketSerializer $out) : void{
49 $out->putVector3($this->position);
50 $out->putByte($this->respawnState);
51 $out->putActorRuntimeId($this->actorRuntimeId);
52 }
53
54 public function handle(PacketHandlerInterface $handler) : bool{
55 return $handler->handleRespawn($this);
56 }
57}
handle(PacketHandlerInterface $handler)
static create(Vector3 $position, int $respawnState, int $actorRuntimeId)