mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-12 00:39:45 +00:00
Merge commit '1a99938e4b5af0295e449379dbdb0a3ffe703efd'
This commit is contained in:
commit
19f75768ed
@ -31,10 +31,8 @@ use function is_string;
|
|||||||
class LegacySkinAdapter implements SkinAdapter{
|
class LegacySkinAdapter implements SkinAdapter{
|
||||||
|
|
||||||
public function toSkinData(Skin $skin) : SkinData{
|
public function toSkinData(Skin $skin) : SkinData{
|
||||||
$capeData = new SkinImage(32, 64, $skin->getCapeData());
|
$capeData = $skin->getCapeData();
|
||||||
if($skin->getCapeData() === ""){
|
$capeImage = $capeData === "" ? new SkinImage(0, 0, "") : new SkinImage(32, 64, $capeData);
|
||||||
$capeData = new SkinImage(0, 0, $skin->getCapeData());
|
|
||||||
}
|
|
||||||
$geometryName = $skin->getGeometryName();
|
$geometryName = $skin->getGeometryName();
|
||||||
if($geometryName === ""){
|
if($geometryName === ""){
|
||||||
$geometryName = "geometry.humanoid.custom";
|
$geometryName = "geometry.humanoid.custom";
|
||||||
@ -43,13 +41,18 @@ class LegacySkinAdapter implements SkinAdapter{
|
|||||||
$skin->getSkinId(),
|
$skin->getSkinId(),
|
||||||
json_encode(["geometry" => ["default" => $geometryName]]),
|
json_encode(["geometry" => ["default" => $geometryName]]),
|
||||||
SkinImage::fromLegacy($skin->getSkinData()), [],
|
SkinImage::fromLegacy($skin->getSkinData()), [],
|
||||||
$capeData,
|
$capeImage,
|
||||||
$skin->getGeometryData()
|
$skin->getGeometryData()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fromSkinData(SkinData $data) : Skin{
|
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 = "";
|
$geometryName = "";
|
||||||
$resourcePatch = json_decode($data->getResourcePatch(), true);
|
$resourcePatch = json_decode($data->getResourcePatch(), true);
|
||||||
if(is_array($resourcePatch["geometry"]) && is_string($resourcePatch["geometry"]["default"])){
|
if(is_array($resourcePatch["geometry"]) && is_string($resourcePatch["geometry"]["default"])){
|
||||||
@ -57,11 +60,7 @@ class LegacySkinAdapter implements SkinAdapter{
|
|||||||
}else{
|
}else{
|
||||||
//TODO: Kick for invalid skin
|
//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());
|
return new Skin($data->getSkinId(), $data->getSkinImage()->getData(), $capeData, $geometryName, $data->getGeometryData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user