mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 09:56:06 +00:00
Merge branch 'stable'
This commit is contained in:
@ -48,6 +48,8 @@ use pocketmine\network\mcpe\protocol\types\entity\MetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\ShortMetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\StringMetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\Vec3MetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\PersonaPieceTintColor;
|
||||
use pocketmine\network\mcpe\protocol\types\PersonaSkinPiece;
|
||||
use pocketmine\network\mcpe\protocol\types\SkinAnimation;
|
||||
use pocketmine\network\mcpe\protocol\types\SkinData;
|
||||
use pocketmine\network\mcpe\protocol\types\SkinImage;
|
||||
@ -117,8 +119,35 @@ class NetworkBinaryStream extends BinaryStream{
|
||||
$capeOnClassic = $this->getBool();
|
||||
$capeId = $this->getString();
|
||||
$fullSkinId = $this->getString();
|
||||
$armSize = $this->getString();
|
||||
$skinColor = $this->getString();
|
||||
$personaPieceCount = $this->getLInt();
|
||||
$personaPieces = [];
|
||||
for($i = 0; $i < $personaPieceCount; ++$i){
|
||||
$personaPieces[] = new PersonaSkinPiece(
|
||||
$pieceId = $this->getString(),
|
||||
$pieceType = $this->getString(),
|
||||
$packId = $this->getString(),
|
||||
$isDefaultPiece = $this->getBool(),
|
||||
$productId = $this->getString()
|
||||
);
|
||||
}
|
||||
$pieceTintColorCount = $this->getLInt();
|
||||
$pieceTintColors = [];
|
||||
for($i = 0; $i < $pieceTintColorCount; ++$i){
|
||||
$pieceType = $this->getString();
|
||||
$colorCount = $this->getLInt();
|
||||
$colors = [];
|
||||
for($j = 0; $j < $colorCount; ++$j){
|
||||
$colors[] = $this->getString();
|
||||
}
|
||||
$pieceTintColors[] = new PersonaPieceTintColor(
|
||||
$pieceType,
|
||||
$colors
|
||||
);
|
||||
}
|
||||
|
||||
return new SkinData($skinId, $skinResourcePatch, $skinData, $animations, $capeData, $geometryData, $animationData, $premium, $persona, $capeOnClassic, $capeId, $fullSkinId);
|
||||
return new SkinData($skinId, $skinResourcePatch, $skinData, $animations, $capeData, $geometryData, $animationData, $premium, $persona, $capeOnClassic, $capeId, $fullSkinId, $armSize, $skinColor, $personaPieces, $pieceTintColors);
|
||||
}
|
||||
|
||||
public function putSkin(SkinData $skin): void{
|
||||
@ -139,6 +168,24 @@ class NetworkBinaryStream extends BinaryStream{
|
||||
$this->putBool($skin->isPersonaCapeOnClassic());
|
||||
$this->putString($skin->getCapeId());
|
||||
$this->putString($skin->getFullSkinId());
|
||||
$this->putString($skin->getArmSize());
|
||||
$this->putString($skin->getSkinColor());
|
||||
$this->putLInt(count($skin->getPersonaPieces()));
|
||||
foreach($skin->getPersonaPieces() as $piece){
|
||||
$this->putString($piece->getPieceId());
|
||||
$this->putString($piece->getPieceType());
|
||||
$this->putString($piece->getPackId());
|
||||
$this->putBool($piece->isDefaultPiece());
|
||||
$this->putString($piece->getProductId());
|
||||
}
|
||||
$this->putLInt(count($skin->getPieceTintColors()));
|
||||
foreach($skin->getPieceTintColors() as $tint){
|
||||
$this->putString($tint->getPieceType());
|
||||
$this->putLInt(count($tint->getColors()));
|
||||
foreach($tint->getColors() as $color){
|
||||
$this->putString($color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function getSkinImage() : SkinImage{
|
||||
|
Reference in New Issue
Block a user