diff --git a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php index e4e7435b6..344203030 100644 --- a/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php +++ b/src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php @@ -26,6 +26,7 @@ namespace pocketmine\network\mcpe\protocol\types; use pocketmine\entity\InvalidSkinException; use pocketmine\entity\Skin; +use function is_array; use function is_string; use function json_decode; use function json_encode; @@ -58,7 +59,7 @@ class LegacySkinAdapter implements SkinAdapter{ $capeData = $data->isPersonaCapeOnClassic() ? "" : $data->getCapeImage()->getData(); $resourcePatch = json_decode($data->getResourcePatch(), true); - if(isset($resourcePatch["geometry"]["default"]) && is_string($resourcePatch["geometry"]["default"])){ + if(is_array($resourcePatch) && isset($resourcePatch["geometry"]["default"]) && is_string($resourcePatch["geometry"]["default"])){ $geometryName = $resourcePatch["geometry"]["default"]; }else{ throw new InvalidSkinException("Missing geometry name field"); diff --git a/tests/phpstan/configs/check-explicit-mixed-baseline.neon b/tests/phpstan/configs/check-explicit-mixed-baseline.neon index a0389d027..c82bdac38 100644 --- a/tests/phpstan/configs/check-explicit-mixed-baseline.neon +++ b/tests/phpstan/configs/check-explicit-mixed-baseline.neon @@ -455,11 +455,6 @@ parameters: count: 1 path: ../../../src/pocketmine/network/mcpe/protocol/StartGamePacket.php - - - message: "#^Cannot access offset 'geometry' on mixed\\.$#" - count: 3 - path: ../../../src/pocketmine/network/mcpe/protocol/types/LegacySkinAdapter.php - - message: "#^Cannot access offset string on mixed\\.$#" count: 1