From c474aa42e5879c7a3eeb39785c7cf4f386d88c9d Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 14 Jul 2021 14:50:59 +0100 Subject: [PATCH] ClientDataToSkinDataHelper: Remove SingletonTrait SingletonTrait is pointless here for multiple reasons: 1) the class is final 2) this is protocol-specific translation of types, no loss of data or alternative mutation of it needs to occur Using SingletonTrait is an obstacle to separating the protocol library from the core code, so it has to go. --- src/network/mcpe/handler/LoginPacketHandler.php | 2 +- .../mcpe/protocol/types/login/ClientDataToSkinDataHelper.php | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/network/mcpe/handler/LoginPacketHandler.php b/src/network/mcpe/handler/LoginPacketHandler.php index 27911a3fa..989bac9f6 100644 --- a/src/network/mcpe/handler/LoginPacketHandler.php +++ b/src/network/mcpe/handler/LoginPacketHandler.php @@ -105,7 +105,7 @@ class LoginPacketHandler extends PacketHandler{ $clientData = $this->parseClientData($packet->clientDataJwt); try{ - $skin = SkinAdapterSingleton::get()->fromSkinData(ClientDataToSkinDataHelper::getInstance()->fromClientData($clientData)); + $skin = SkinAdapterSingleton::get()->fromSkinData(ClientDataToSkinDataHelper::fromClientData($clientData)); }catch(\InvalidArgumentException | InvalidSkinException $e){ $this->session->getLogger()->debug("Invalid skin: " . $e->getMessage()); $this->session->disconnect("disconnectionScreen.invalidSkin"); diff --git a/src/network/mcpe/protocol/types/login/ClientDataToSkinDataHelper.php b/src/network/mcpe/protocol/types/login/ClientDataToSkinDataHelper.php index 037a79942..2a30562b6 100644 --- a/src/network/mcpe/protocol/types/login/ClientDataToSkinDataHelper.php +++ b/src/network/mcpe/protocol/types/login/ClientDataToSkinDataHelper.php @@ -28,12 +28,10 @@ use pocketmine\network\mcpe\protocol\types\skin\PersonaSkinPiece; use pocketmine\network\mcpe\protocol\types\skin\SkinAnimation; use pocketmine\network\mcpe\protocol\types\skin\SkinData; use pocketmine\network\mcpe\protocol\types\skin\SkinImage; -use pocketmine\utils\SingletonTrait; use function array_map; use function base64_decode; final class ClientDataToSkinDataHelper{ - use SingletonTrait; /** * @throws \InvalidArgumentException @@ -49,7 +47,7 @@ final class ClientDataToSkinDataHelper{ /** * @throws \InvalidArgumentException */ - public function fromClientData(ClientData $clientData) : SkinData{ + public static function fromClientData(ClientData $clientData) : SkinData{ /** @var SkinAnimation[] $animations */ $animations = []; foreach($clientData->AnimatedImageData as $k => $animation){