PlayerSkinPacket: added ::create()

This commit is contained in:
Dylan K. Taylor 2020-07-09 13:24:31 +01:00
parent b22cc4875e
commit 600ef033ab
2 changed files with 10 additions and 4 deletions

View File

@ -138,10 +138,9 @@ class Human extends Living implements ProjectileSource, InventoryHolder{
* @param Player[]|null $targets * @param Player[]|null $targets
*/ */
public function sendSkin(?array $targets = null) : void{ public function sendSkin(?array $targets = null) : void{
$pk = new PlayerSkinPacket(); $this->server->broadcastPackets($targets ?? $this->hasSpawned, [
$pk->uuid = $this->getUniqueId(); PlayerSkinPacket::create($this->getUniqueId(), SkinAdapterSingleton::get()->toSkinData($this->skin))
$pk->skin = SkinAdapterSingleton::get()->toSkinData($this->skin); ]);
$this->server->broadcastPackets($targets ?? $this->hasSpawned, [$pk]);
} }
public function jump() : void{ public function jump() : void{

View File

@ -41,6 +41,13 @@ class PlayerSkinPacket extends DataPacket implements ClientboundPacket, Serverbo
/** @var SkinData */ /** @var SkinData */
public $skin; public $skin;
public static function create(UUID $uuid, SkinData $skinData) : self{
$result = new self;
$result->uuid = $uuid;
$result->skin = $skinData;
return $result;
}
protected function decodePayload(PacketSerializer $in) : void{ protected function decodePayload(PacketSerializer $in) : void{
$this->uuid = $in->getUUID(); $this->uuid = $in->getUUID();
$this->skin = $in->getSkin(); $this->skin = $in->getSkin();