From fc0619ee6e4fa08aba2719e58a9289edd11f0b6e Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 30 Jan 2020 21:12:00 +0000 Subject: [PATCH] populate missing array value types in network namespace --- src/pocketmine/network/mcpe/NetworkBinaryStream.php | 8 +++++++- src/pocketmine/network/mcpe/protocol/AddActorPacket.php | 2 +- .../network/mcpe/protocol/AddItemActorPacket.php | 2 +- src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php | 2 +- .../network/mcpe/protocol/AvailableCommandsPacket.php | 3 +++ .../network/mcpe/protocol/GameRulesChangedPacket.php | 2 +- src/pocketmine/network/mcpe/protocol/LevelChunkPacket.php | 3 +++ src/pocketmine/network/mcpe/protocol/LoginPacket.php | 4 ++-- .../network/mcpe/protocol/SetActorDataPacket.php | 2 +- src/pocketmine/network/mcpe/protocol/StartGamePacket.php | 7 +++++-- 10 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/pocketmine/network/mcpe/NetworkBinaryStream.php b/src/pocketmine/network/mcpe/NetworkBinaryStream.php index 01bee3e77..b9567ca6a 100644 --- a/src/pocketmine/network/mcpe/NetworkBinaryStream.php +++ b/src/pocketmine/network/mcpe/NetworkBinaryStream.php @@ -272,6 +272,8 @@ class NetworkBinaryStream extends BinaryStream{ * Decodes entity metadata from the stream. * * @param bool $types Whether to include metadata types along with values in the returned array + * + * @return mixed[]|mixed[][] */ public function getEntityMetadata(bool $types = true) : array{ $count = $this->getUnsignedVarInt(); @@ -324,6 +326,8 @@ class NetworkBinaryStream extends BinaryStream{ /** * Writes entity metadata to the packet buffer. + * + * @param mixed[][] $metadata */ public function putEntityMetadata(array $metadata) : void{ $this->putUnsignedVarInt(count($metadata)); @@ -540,7 +544,7 @@ class NetworkBinaryStream extends BinaryStream{ * Reads gamerules * TODO: implement this properly * - * @return array, members are in the structure [name => [type, value]] + * @return mixed[][], members are in the structure [name => [type, value]] */ public function getGameRules() : array{ $count = $this->getUnsignedVarInt(); @@ -570,6 +574,8 @@ class NetworkBinaryStream extends BinaryStream{ /** * Writes a gamerule array, members should be in the structure [name => [type, value]] * TODO: implement this properly + * + * @param mixed[][] $rules */ public function putGameRules(array $rules) : void{ $this->putUnsignedVarInt(count($rules)); diff --git a/src/pocketmine/network/mcpe/protocol/AddActorPacket.php b/src/pocketmine/network/mcpe/protocol/AddActorPacket.php index 50aade6fa..94893b22e 100644 --- a/src/pocketmine/network/mcpe/protocol/AddActorPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddActorPacket.php @@ -163,7 +163,7 @@ class AddActorPacket extends DataPacket{ /** @var Attribute[] */ public $attributes = []; - /** @var array */ + /** @var mixed[][] */ public $metadata = []; /** @var EntityLink[] */ public $links = []; diff --git a/src/pocketmine/network/mcpe/protocol/AddItemActorPacket.php b/src/pocketmine/network/mcpe/protocol/AddItemActorPacket.php index 13492dae4..37e46d746 100644 --- a/src/pocketmine/network/mcpe/protocol/AddItemActorPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddItemActorPacket.php @@ -42,7 +42,7 @@ class AddItemActorPacket extends DataPacket{ public $position; /** @var Vector3|null */ public $motion; - /** @var array */ + /** @var mixed[][] */ public $metadata = []; /** @var bool */ public $isFromFishing = false; diff --git a/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php b/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php index 42a01dd49..e4bd88c0c 100644 --- a/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php @@ -57,7 +57,7 @@ class AddPlayerPacket extends DataPacket{ public $headYaw = null; //TODO /** @var Item */ public $item; - /** @var array */ + /** @var mixed[][] */ public $metadata = []; //TODO: adventure settings stuff diff --git a/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php b/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php index 4c7644ca9..563472b76 100644 --- a/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php @@ -360,6 +360,9 @@ class AvailableCommandsPacket extends DataPacket{ } } + /** + * @param string[] $postfixes + */ private function argTypeToString(int $argtype, array $postfixes) : string{ if($argtype & self::ARG_FLAG_VALID){ if($argtype & self::ARG_FLAG_ENUM){ diff --git a/src/pocketmine/network/mcpe/protocol/GameRulesChangedPacket.php b/src/pocketmine/network/mcpe/protocol/GameRulesChangedPacket.php index 1a45daa91..86941fba8 100644 --- a/src/pocketmine/network/mcpe/protocol/GameRulesChangedPacket.php +++ b/src/pocketmine/network/mcpe/protocol/GameRulesChangedPacket.php @@ -30,7 +30,7 @@ use pocketmine\network\mcpe\NetworkSession; class GameRulesChangedPacket extends DataPacket{ public const NETWORK_ID = ProtocolInfo::GAME_RULES_CHANGED_PACKET; - /** @var array */ + /** @var mixed[][] */ public $gameRules = []; protected function decodePayload(){ diff --git a/src/pocketmine/network/mcpe/protocol/LevelChunkPacket.php b/src/pocketmine/network/mcpe/protocol/LevelChunkPacket.php index 77493528c..c801e8852 100644 --- a/src/pocketmine/network/mcpe/protocol/LevelChunkPacket.php +++ b/src/pocketmine/network/mcpe/protocol/LevelChunkPacket.php @@ -56,6 +56,9 @@ class LevelChunkPacket extends DataPacket/* implements ClientboundPacket*/{ return $result; } + /** + * @param int[] $usedBlobHashes + */ public static function withCache(int $chunkX, int $chunkZ, int $subChunkCount, array $usedBlobHashes, string $extraPayload) : self{ (static function(int ...$hashes){})(...$usedBlobHashes); $result = new self; diff --git a/src/pocketmine/network/mcpe/protocol/LoginPacket.php b/src/pocketmine/network/mcpe/protocol/LoginPacket.php index 65c8728ad..013bc4f56 100644 --- a/src/pocketmine/network/mcpe/protocol/LoginPacket.php +++ b/src/pocketmine/network/mcpe/protocol/LoginPacket.php @@ -54,11 +54,11 @@ class LoginPacket extends DataPacket{ /** @var string */ public $locale; - /** @var array (the "chain" index contains one or more JWTs) */ + /** @var string[][] (the "chain" index contains one or more JWTs) */ public $chainData = []; /** @var string */ public $clientDataJwt; - /** @var array decoded payload of the clientData JWT */ + /** @var mixed[] decoded payload of the clientData JWT */ public $clientData = []; /** diff --git a/src/pocketmine/network/mcpe/protocol/SetActorDataPacket.php b/src/pocketmine/network/mcpe/protocol/SetActorDataPacket.php index ffec20fda..ad419e733 100644 --- a/src/pocketmine/network/mcpe/protocol/SetActorDataPacket.php +++ b/src/pocketmine/network/mcpe/protocol/SetActorDataPacket.php @@ -32,7 +32,7 @@ class SetActorDataPacket extends DataPacket{ /** @var int */ public $entityRuntimeId; - /** @var array */ + /** @var mixed[][] */ public $metadata; protected function decodePayload(){ diff --git a/src/pocketmine/network/mcpe/protocol/StartGamePacket.php b/src/pocketmine/network/mcpe/protocol/StartGamePacket.php index c798dfc13..0f5e8b449 100644 --- a/src/pocketmine/network/mcpe/protocol/StartGamePacket.php +++ b/src/pocketmine/network/mcpe/protocol/StartGamePacket.php @@ -102,7 +102,7 @@ class StartGamePacket extends DataPacket{ public $commandsEnabled; /** @var bool */ public $isTexturePacksRequired = true; - /** @var array */ + /** @var mixed[][] */ public $gameRules = [ //TODO: implement this "naturalregeneration" => [1, false] //Hack for client side regeneration ]; @@ -152,7 +152,7 @@ class StartGamePacket extends DataPacket{ /** @var ListTag|null */ public $blockTable = null; - /** @var array|null string (name) => int16 (legacyID) */ + /** @var int[]|null string (name) => int16 (legacyID) */ public $itemTable = null; protected function decodePayload(){ @@ -299,6 +299,9 @@ class StartGamePacket extends DataPacket{ $this->putString($this->multiplayerCorrelationId); } + /** + * @param int[] $table + */ private static function serializeItemTable(array $table) : string{ $stream = new NetworkBinaryStream(); $stream->putUnsignedVarInt(count($table));