13declare(strict_types=1);
15namespace pocketmine\network\mcpe\protocol;
24use Ramsey\Uuid\UuidInterface;
28 public const NETWORK_ID = ProtocolInfo::ADD_PLAYER_PACKET;
30 public UuidInterface $uuid;
31 public string $username;
32 public int $actorRuntimeId;
33 public string $platformChatId =
"";
36 public float $pitch = 0.0;
37 public float $yaw = 0.0;
38 public float $headYaw = 0.0;
45 public array $metadata = [];
51 public array $links = [];
52 public string $deviceId =
"";
53 public int $buildPlatform = DeviceOS::UNKNOWN;
65 string $platformChatId,
81 $result->uuid = $uuid;
82 $result->username = $username;
83 $result->actorRuntimeId = $actorRuntimeId;
84 $result->platformChatId = $platformChatId;
85 $result->position = $position;
86 $result->motion = $motion;
87 $result->pitch = $pitch;
89 $result->headYaw = $headYaw;
90 $result->item = $item;
91 $result->gameMode = $gameMode;
92 $result->metadata = $metadata;
93 $result->syncedProperties = $syncedProperties;
94 $result->abilitiesPacket = $abilitiesPacket;
95 $result->links = $links;
96 $result->deviceId = $deviceId;
97 $result->buildPlatform = $buildPlatform;
102 $this->uuid = $in->getUUID();
105 $this->platformChatId = $in->
getString();
111 $this->item = $in->getItemStackWrapper();
114 $this->syncedProperties = PropertySyncData::read($in);
117 $this->abilitiesPacket->decodePayload($in);
120 for($i = 0; $i < $linkCount; ++$i){
125 $this->buildPlatform = $in->
getLInt();
129 $out->putUUID($this->uuid);
130 $out->putString($this->username);
131 $out->putActorRuntimeId($this->actorRuntimeId);
132 $out->putString($this->platformChatId);
135 $out->putLFloat($this->pitch);
136 $out->putLFloat($this->yaw);
137 $out->putLFloat($this->headYaw);
138 $out->putItemStackWrapper($this->item);
141 $this->syncedProperties->write($out);
143 $this->abilitiesPacket->encodePayload($out);
146 foreach($this->links as $link){
147 $out->putEntityLink($link);
150 $out->putString($this->deviceId);
151 $out->putLInt($this->buildPlatform);
155 return $handler->handleAddPlayer($this);
decodePayload(PacketSerializer $in)
handle(PacketHandlerInterface $handler)
encodePayload(PacketSerializer $out)
static create(UuidInterface $uuid, string $username, int $actorRuntimeId, string $platformChatId, Vector3 $position, ?Vector3 $motion, float $pitch, float $yaw, float $headYaw, ItemStackWrapper $item, int $gameMode, array $metadata, PropertySyncData $syncedProperties, UpdateAbilitiesPacket $abilitiesPacket, array $links, string $deviceId, int $buildPlatform,)
putVector3Nullable(?Vector3 $vector)
putEntityMetadata(array $metadata)
putVector3(Vector3 $vector)
putUnsignedVarInt(int $v)