From 5682cc8d531e4db83deaf3389818b8db9bd045d5 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 7 Dec 2019 16:41:41 +0000 Subject: [PATCH 1/3] 3.10.2 is next --- src/pocketmine/VersionInfo.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/VersionInfo.php b/src/pocketmine/VersionInfo.php index 1e13f8f2d..22776db77 100644 --- a/src/pocketmine/VersionInfo.php +++ b/src/pocketmine/VersionInfo.php @@ -30,6 +30,6 @@ const _VERSION_INFO_INCLUDED = true; const NAME = "PocketMine-MP"; -const BASE_VERSION = "3.10.1"; -const IS_DEVELOPMENT_BUILD = false; +const BASE_VERSION = "3.10.2"; +const IS_DEVELOPMENT_BUILD = true; const BUILD_NUMBER = 0; From a4d68fb32bb9b4192944bf29b21ee14aaf3f4ceb Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 9 Dec 2019 18:16:46 +0000 Subject: [PATCH 2/3] LegacySkinAdapter: fix some wacky cape handling logic I added checks for length validity locally and ran into some interesting behaviour because of this code. --- .../network/mcpe/protocol/types/LegacySkinAdapter.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php index 676868b3e..e503ee825 100644 --- a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php +++ b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php @@ -31,10 +31,8 @@ use function is_string; class LegacySkinAdapter implements SkinAdapter{ public function toSkinData(Skin $skin) : SkinData{ - $capeData = new SkinImage(32, 64, $skin->getCapeData()); - if($skin->getCapeData() === ""){ - $capeData = new SkinImage(0, 0, $skin->getCapeData()); - } + $capeData = $skin->getCapeData(); + $capeImage = $capeData === "" ? new SkinImage(0, 0, "") : new SkinImage(32, 64, $capeData); $geometryName = $skin->getGeometryName(); if($geometryName === ""){ $geometryName = "geometry.humanoid.custom"; @@ -43,7 +41,7 @@ class LegacySkinAdapter implements SkinAdapter{ $skin->getSkinId(), json_encode(["geometry" => ["default" => $geometryName]]), SkinImage::fromLegacy($skin->getSkinData()), [], - $capeData, + $capeImage, $skin->getGeometryData() ); } From 1a99938e4b5af0295e449379dbdb0a3ffe703efd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 9 Dec 2019 18:26:20 +0000 Subject: [PATCH 3/3] LegacySkinAdapter: clean up nonsensical code ordering --- .../mcpe/protocol/types/LegacySkinAdapter.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php index e503ee825..639e1adcf 100644 --- a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php +++ b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php @@ -47,7 +47,12 @@ class LegacySkinAdapter implements SkinAdapter{ } public function fromSkinData(SkinData $data) : Skin{ - $capeData = $data->getCapeImage()->getData(); + if($data->isPersona()){ + return new Skin("Standard_Custom", str_repeat(random_bytes(3) . "\xff", 2048)); + } + + $capeData = $data->isPersonaCapeOnClassic() ? "" : $data->getCapeImage()->getData(); + $geometryName = ""; $resourcePatch = json_decode($data->getResourcePatch(), true); if(is_array($resourcePatch["geometry"]) && is_string($resourcePatch["geometry"]["default"])){ @@ -55,11 +60,7 @@ class LegacySkinAdapter implements SkinAdapter{ }else{ //TODO: Kick for invalid skin } - if($data->isPersona()){ - return new Skin("Standard_Custom", str_repeat(random_bytes(3) . "\xff", 2048)); - }elseif($data->isPersonaCapeOnClassic()){ - $capeData = ""; - } + return new Skin($data->getSkinId(), $data->getSkinImage()->getData(), $capeData, $geometryName, $data->getGeometryData()); } }