Add some isset checks to prevent server from crashing on an invalid resourcepatch

This commit is contained in:
Stephen 2019-11-21 17:58:33 -05:00
parent fa56290bb4
commit a303c4b294

View File

@ -43,11 +43,16 @@ class LegacySkinAdapter implements SkinAdapter{
public function fromSkinData(SkinData $data) : Skin{ public function fromSkinData(SkinData $data) : Skin{
$capeData = $data->getCapeImage()->getData(); $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()){ if($data->isPersona()){
return new Skin("Standard_Custom", str_repeat(random_bytes(3) . "\xff", 2048), "", "geometry.humanoid.custom"); return new Skin("Standard_Custom", str_repeat(random_bytes(3) . "\xff", 2048), "", "geometry.humanoid.custom");
}elseif($data->isPersonaCapeOnClassic()){ }elseif($data->isPersonaCapeOnClassic()){
$capeData = ""; $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());
} }
} }