From a303c4b294525651523a4f012bee2f58bf56acf0 Mon Sep 17 00:00:00 2001 From: Stephen Date: Thu, 21 Nov 2019 17:58:33 -0500 Subject: [PATCH] Add some isset checks to prevent server from crashing on an invalid resourcepatch --- .../network/mcpe/protocol/types/LegacySkinAdapter.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php index 4779300b4c..75c4c1fd94 100644 --- a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php +++ b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php @@ -43,11 +43,16 @@ class LegacySkinAdapter implements SkinAdapter{ public function fromSkinData(SkinData $data) : Skin{ $capeData = $data->getCapeImage()->getData(); + $geometryName = ""; + $resourcePatch = json_decode($data->getResourcePatch(), true); + if(isset($resourcePatch["geometry"]) && isset($resourcePatch["geometry"]["default"])){ + $geometryName = $resourcePatch["geometry"]["default"]; + } if($data->isPersona()){ return new Skin("Standard_Custom", str_repeat(random_bytes(3) . "\xff", 2048), "", "geometry.humanoid.custom"); }elseif($data->isPersonaCapeOnClassic()){ $capeData = ""; } - return new Skin($data->getSkinId(), $data->getSkinImage()->getData(), $capeData, json_decode($data->getResourcePatch(), true)["geometry"]["default"], $data->getGeometryData()); + return new Skin($data->getSkinId(), $data->getSkinImage()->getData(), $capeData, $geometryName, $data->getGeometryData()); } } \ No newline at end of file