PocketMine-MP 5.21.3 git-fcef015f32c0b0709cfd4d6f1b3c32f484b25bde
Loading...
Searching...
No Matches
PlayerSkinPacket.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
19use Ramsey\Uuid\UuidInterface;
20
22 public const NETWORK_ID = ProtocolInfo::PLAYER_SKIN_PACKET;
23
24 public UuidInterface $uuid;
25 public string $oldSkinName = "";
26 public string $newSkinName = "";
27 public SkinData $skin;
28
32 public static function create(UuidInterface $uuid, string $oldSkinName, string $newSkinName, SkinData $skin) : self{
33 $result = new self;
34 $result->uuid = $uuid;
35 $result->oldSkinName = $oldSkinName;
36 $result->newSkinName = $newSkinName;
37 $result->skin = $skin;
38 return $result;
39 }
40
41 protected function decodePayload(PacketSerializer $in) : void{
42 $this->uuid = $in->getUUID();
43 $this->skin = $in->getSkin();
44 $this->newSkinName = $in->getString();
45 $this->oldSkinName = $in->getString();
46 $this->skin->setVerified($in->getBool());
47 }
48
49 protected function encodePayload(PacketSerializer $out) : void{
50 $out->putUUID($this->uuid);
51 $out->putSkin($this->skin);
52 $out->putString($this->newSkinName);
53 $out->putString($this->oldSkinName);
54 $out->putBool($this->skin->isVerified());
55 }
56
57 public function handle(PacketHandlerInterface $handler) : bool{
58 return $handler->handlePlayerSkin($this);
59 }
60}
static create(UuidInterface $uuid, string $oldSkinName, string $newSkinName, SkinData $skin)