From ff63f6d05566e089e88c3dd74a70fa041dba499f Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 1 Feb 2020 20:19:57 +0000 Subject: [PATCH] fill in more iterable types (master) --- src/Server.php | 6 ++++++ src/entity/Entity.php | 3 +++ src/lang/Language.php | 4 ++++ src/network/mcpe/NetworkSession.php | 3 +++ src/network/mcpe/protocol/DataPacket.php | 3 +++ src/network/mcpe/protocol/LoginPacket.php | 5 ++++- src/network/mcpe/protocol/PlayerListPacket.php | 6 ++++++ src/network/mcpe/protocol/SetActorDataPacket.php | 4 ++++ src/network/mcpe/protocol/TextPacket.php | 3 +++ .../types/entity/IntegerishMetadataProperty.php | 4 ++++ .../types/inventory/ReleaseItemTransactionData.php | 3 +++ .../inventory/UseItemOnEntityTransactionData.php | 3 +++ .../types/inventory/UseItemTransactionData.php | 3 +++ src/permission/PermissionParser.php | 7 +++++++ src/player/GameMode.php | 3 +++ src/player/Player.php | 6 ++++++ src/player/PlayerInfo.php | 13 ++++++++++++- src/plugin/PluginGraylist.php | 10 ++++++++++ src/world/World.php | 6 ++++++ src/world/WorldManager.php | 2 ++ src/world/format/SubChunk.php | 3 +++ src/world/format/io/WorldData.php | 4 ++++ src/world/format/io/data/BedrockWorldData.php | 5 +++++ src/world/format/io/data/JavaWorldData.php | 5 +++++ src/world/format/io/region/RegionWorldProvider.php | 5 +++++ src/world/generator/Generator.php | 5 ++++- 26 files changed, 121 insertions(+), 3 deletions(-) diff --git a/src/Server.php b/src/Server.php index f7a6c40ca..19c82d251 100644 --- a/src/Server.php +++ b/src/Server.php @@ -1153,6 +1153,9 @@ class Server{ return count($recipients); } + /** + * @return Player[] + */ private function selectPermittedPlayers(string $permission) : array{ /** @var Player[] $players */ $players = []; @@ -1536,6 +1539,9 @@ class Server{ exit(1); } + /** + * @return mixed[] + */ public function __debugInfo() : array{ return []; } diff --git a/src/entity/Entity.php b/src/entity/Entity.php index 910dd5875..3237662f9 100644 --- a/src/entity/Entity.php +++ b/src/entity/Entity.php @@ -1695,6 +1695,9 @@ abstract class Entity{ $this->server->broadcastPackets($players ?? $this->getViewers(), [ActorEventPacket::create($this->id, $eventId, $eventData ?? 0)]); } + /** + * @param Player[]|null $players + */ public function broadcastAnimation(?array $players, int $animationId) : void{ $this->server->broadcastPackets($players ?? $this->getViewers(), [AnimatePacket::create($this->id, $animationId)]); } diff --git a/src/lang/Language.php b/src/lang/Language.php index 4e2ebabe7..47e71f059 100644 --- a/src/lang/Language.php +++ b/src/lang/Language.php @@ -109,6 +109,10 @@ class Language{ return $this->langName; } + /** + * @return string[] + * @phpstan-return array + */ protected static function loadLang(string $path, string $languageCode) : array{ $file = $path . $languageCode . ".ini"; if(file_exists($file)){ diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index a20855061..33df65074 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -711,6 +711,9 @@ class NetworkSession{ $this->sendDataPacket(TextPacket::raw($message)); } + /** + * @param string[] $parameters + */ public function onTranslatedChatMessage(string $key, array $parameters) : void{ $this->sendDataPacket(TextPacket::translation($key, $parameters)); } diff --git a/src/network/mcpe/protocol/DataPacket.php b/src/network/mcpe/protocol/DataPacket.php index 81543f424..53fd9bd71 100644 --- a/src/network/mcpe/protocol/DataPacket.php +++ b/src/network/mcpe/protocol/DataPacket.php @@ -104,6 +104,9 @@ abstract class DataPacket extends NetworkBinaryStream implements Packet{ */ abstract protected function encodePayload() : void; + /** + * @return mixed[] + */ public function __debugInfo() : array{ $data = []; foreach((array) $this as $k => $v){ diff --git a/src/network/mcpe/protocol/LoginPacket.php b/src/network/mcpe/protocol/LoginPacket.php index 8eca676e8..92e7a2cd5 100644 --- a/src/network/mcpe/protocol/LoginPacket.php +++ b/src/network/mcpe/protocol/LoginPacket.php @@ -83,7 +83,10 @@ class LoginPacket extends DataPacket implements ServerboundPacket{ /** @var string[] array of encoded JWT */ public $chainDataJwt = []; - /** @var array|null extraData index of whichever JWT has it */ + /** + * @var mixed[]|null extraData index of whichever JWT has it + * @phpstan-var array + */ public $extraData = null; /** @var string */ public $clientDataJwt; diff --git a/src/network/mcpe/protocol/PlayerListPacket.php b/src/network/mcpe/protocol/PlayerListPacket.php index 8431c354e..c514f4fdb 100644 --- a/src/network/mcpe/protocol/PlayerListPacket.php +++ b/src/network/mcpe/protocol/PlayerListPacket.php @@ -40,6 +40,9 @@ class PlayerListPacket extends DataPacket implements ClientboundPacket{ /** @var int */ public $type; + /** + * @param PlayerListEntry[] $entries + */ public static function add(array $entries) : self{ $result = new self; $result->type = self::TYPE_ADD; @@ -47,6 +50,9 @@ class PlayerListPacket extends DataPacket implements ClientboundPacket{ return $result; } + /** + * @param PlayerListEntry[] $entries + */ public static function remove(array $entries) : self{ $result = new self; $result->type = self::TYPE_REMOVE; diff --git a/src/network/mcpe/protocol/SetActorDataPacket.php b/src/network/mcpe/protocol/SetActorDataPacket.php index c030b2154..ebde0894a 100644 --- a/src/network/mcpe/protocol/SetActorDataPacket.php +++ b/src/network/mcpe/protocol/SetActorDataPacket.php @@ -39,6 +39,10 @@ class SetActorDataPacket extends DataPacket implements ClientboundPacket, Server */ public $metadata; + /** + * @param MetadataProperty[] $metadata + * @phpstan-param array $metadata + */ public static function create(int $entityRuntimeId, array $metadata) : self{ $result = new self; diff --git a/src/network/mcpe/protocol/TextPacket.php b/src/network/mcpe/protocol/TextPacket.php index d227eb0a9..5594b9e65 100644 --- a/src/network/mcpe/protocol/TextPacket.php +++ b/src/network/mcpe/protocol/TextPacket.php @@ -64,6 +64,9 @@ class TextPacket extends DataPacket implements ClientboundPacket, ServerboundPac return $result; } + /** + * @param string[] $parameters + */ private static function baseTranslation(int $type, string $key, array $parameters) : self{ $result = new self; $result->type = $type; diff --git a/src/network/mcpe/protocol/types/entity/IntegerishMetadataProperty.php b/src/network/mcpe/protocol/types/entity/IntegerishMetadataProperty.php index 298e229b4..62be6a0d0 100644 --- a/src/network/mcpe/protocol/types/entity/IntegerishMetadataProperty.php +++ b/src/network/mcpe/protocol/types/entity/IntegerishMetadataProperty.php @@ -46,6 +46,10 @@ trait IntegerishMetadataProperty{ return $other instanceof self and $other->value === $this->value; } + /** + * @param bool[] $flags + * @phpstan-param array $flags + */ public static function buildFromFlags(array $flags) : self{ $value = 0; foreach($flags as $flag => $v){ diff --git a/src/network/mcpe/protocol/types/inventory/ReleaseItemTransactionData.php b/src/network/mcpe/protocol/types/inventory/ReleaseItemTransactionData.php index d6274454b..b0d8a4f6d 100644 --- a/src/network/mcpe/protocol/types/inventory/ReleaseItemTransactionData.php +++ b/src/network/mcpe/protocol/types/inventory/ReleaseItemTransactionData.php @@ -75,6 +75,9 @@ class ReleaseItemTransactionData extends TransactionData{ $stream->putVector3($this->headPos); } + /** + * @param NetworkInventoryAction[] $actions + */ public static function new(array $actions, int $actionType, int $hotbarSlot, Item $itemInHand, Vector3 $headPos) : self{ $result = new self; $result->actions = $actions; diff --git a/src/network/mcpe/protocol/types/inventory/UseItemOnEntityTransactionData.php b/src/network/mcpe/protocol/types/inventory/UseItemOnEntityTransactionData.php index f487fee24..c53408cd0 100644 --- a/src/network/mcpe/protocol/types/inventory/UseItemOnEntityTransactionData.php +++ b/src/network/mcpe/protocol/types/inventory/UseItemOnEntityTransactionData.php @@ -91,6 +91,9 @@ class UseItemOnEntityTransactionData extends TransactionData{ $stream->putVector3($this->clickPos); } + /** + * @param NetworkInventoryAction[] $actions + */ public static function new(array $actions, int $entityRuntimeId, int $actionType, int $hotbarSlot, Item $itemInHand, Vector3 $playerPos, Vector3 $clickPos) : self{ $result = new self; $result->actions = $actions; diff --git a/src/network/mcpe/protocol/types/inventory/UseItemTransactionData.php b/src/network/mcpe/protocol/types/inventory/UseItemTransactionData.php index 261b1c874..8131b6aa0 100644 --- a/src/network/mcpe/protocol/types/inventory/UseItemTransactionData.php +++ b/src/network/mcpe/protocol/types/inventory/UseItemTransactionData.php @@ -109,6 +109,9 @@ class UseItemTransactionData extends TransactionData{ $stream->putUnsignedVarInt($this->blockRuntimeId); } + /** + * @param NetworkInventoryAction[] $actions + */ public static function new(array $actions, int $actionType, Vector3 $blockPos, int $face, int $hotbarSlot, Item $itemInHand, Vector3 $playerPos, Vector3 $clickPos, int $blockRuntimeId) : self{ $result = new self; $result->actions = $actions; diff --git a/src/permission/PermissionParser.php b/src/permission/PermissionParser.php index c0abfb1c9..c1d693c82 100644 --- a/src/permission/PermissionParser.php +++ b/src/permission/PermissionParser.php @@ -122,6 +122,9 @@ class PermissionParser{ /** * @param Permission[] $permissions + * + * @return mixed[] + * @phpstan-return array> */ public static function emitPermissions(array $permissions) : array{ $result = []; @@ -132,6 +135,10 @@ class PermissionParser{ return $result; } + /** + * @return mixed[] + * @phpstan-return array + */ private static function emitPermission(Permission $permission) : array{ $result = [ "description" => $permission->getDescription(), diff --git a/src/player/GameMode.php b/src/player/GameMode.php index 7b99f5a81..b4bab2d41 100644 --- a/src/player/GameMode.php +++ b/src/player/GameMode.php @@ -90,6 +90,9 @@ final class GameMode{ /** @var string[] */ private $aliases; + /** + * @param string[] $aliases + */ private function __construct(string $enumName, int $magicNumber, string $englishName, string $translationKey, array $aliases = []){ $this->Enum___construct($enumName); $this->magicNumber = $magicNumber; diff --git a/src/player/Player.php b/src/player/Player.php index 57bac6e86..7ba7d85fb 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -837,6 +837,9 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener, } } + /** + * @return \Generator + */ protected function selectChunks() : \Generator{ $radius = $this->server->getAllowedViewDistance($this->viewDistance); $radiusSquared = $radius ** 2; @@ -2007,6 +2010,9 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener, parent::destroyCycles(); } + /** + * @return mixed[] + */ public function __debugInfo() : array{ return []; } diff --git a/src/player/PlayerInfo.php b/src/player/PlayerInfo.php index 285294ddf..a3120edce 100644 --- a/src/player/PlayerInfo.php +++ b/src/player/PlayerInfo.php @@ -42,9 +42,16 @@ class PlayerInfo{ private $locale; /** @var string */ private $xuid; - /** @var array */ + /** + * @var mixed[] + * @phpstan-var array + */ private $extraData; + /** + * @param mixed[] $extraData + * @phpstan-param array $extraData + */ public function __construct(string $username, UUID $uuid, Skin $skin, string $locale, string $xuid, array $extraData = []){ $this->username = TextFormat::clean($username); $this->uuid = $uuid; @@ -74,6 +81,10 @@ class PlayerInfo{ return $this->xuid; } + /** + * @return mixed[] + * @phpstan-return array + */ public function getExtraData() : array{ return $this->extraData; } diff --git a/src/plugin/PluginGraylist.php b/src/plugin/PluginGraylist.php index c7ab8c88a..8436ffc7f 100644 --- a/src/plugin/PluginGraylist.php +++ b/src/plugin/PluginGraylist.php @@ -36,6 +36,9 @@ class PluginGraylist{ /** @var bool */ private $isWhitelist = false; + /** + * @param string[] $plugins + */ public function __construct(array $plugins = [], bool $whitelist = false){ $this->plugins = array_flip($plugins); $this->isWhitelist = $whitelist; @@ -59,6 +62,9 @@ class PluginGraylist{ return $this->isWhitelist() === isset($this->plugins[$name]); } + /** + * @param mixed[] $array + */ public static function fromArray(array $array) : PluginGraylist{ $v = new Validator(); $v->required("mode")->inArray(['whitelist', 'blacklist'], true); @@ -75,6 +81,10 @@ class PluginGraylist{ return new PluginGraylist($array["plugins"], $array["mode"] === 'whitelist'); } + /** + * @return mixed[] + * @phpstan-return array + */ public function toArray() : array{ return [ "mode" => $this->isWhitelist ? 'whitelist' : 'blacklist', diff --git a/src/world/World.php b/src/world/World.php index 5e5d6061d..8a7796178 100644 --- a/src/world/World.php +++ b/src/world/World.php @@ -423,6 +423,9 @@ class World implements ChunkManager{ $this->closed = true; } + /** + * @param Player[]|null $players + */ public function addSound(Vector3 $pos, Sound $sound, ?array $players = null) : void{ $pk = $sound->encode($pos); if(!is_array($pk)){ @@ -439,6 +442,9 @@ class World implements ChunkManager{ } } + /** + * @param Player[]|null $players + */ public function addParticle(Vector3 $pos, Particle $particle, ?array $players = null) : void{ $pk = $particle->encode($pos); if(!is_array($pk)){ diff --git a/src/world/WorldManager.php b/src/world/WorldManager.php index a7ec2de1f..8dee91e69 100644 --- a/src/world/WorldManager.php +++ b/src/world/WorldManager.php @@ -235,7 +235,9 @@ class WorldManager{ * Generates a new world if it does not exist * * @param string $generator Class name that extends pocketmine\world\generator\Generator + * @param mixed[] $options * @phpstan-param class-string $generator + * @phpstan-param array $options * * @throws \InvalidArgumentException */ diff --git a/src/world/format/SubChunk.php b/src/world/format/SubChunk.php index 5a3f980cc..74056f62a 100644 --- a/src/world/format/SubChunk.php +++ b/src/world/format/SubChunk.php @@ -108,6 +108,9 @@ class SubChunk implements SubChunkInterface{ $this->blockLight = $data; } + /** + * @return mixed[] + */ public function __debugInfo() : array{ return []; } diff --git a/src/world/format/io/WorldData.php b/src/world/format/io/WorldData.php index d3b7757ba..46f4086e0 100644 --- a/src/world/format/io/WorldData.php +++ b/src/world/format/io/WorldData.php @@ -39,6 +39,10 @@ interface WorldData{ */ public function getGenerator() : string; + /** + * @return mixed[] + * @phpstan-return array + */ public function getGeneratorOptions() : array; public function getSeed() : int; diff --git a/src/world/format/io/data/BedrockWorldData.php b/src/world/format/io/data/BedrockWorldData.php index 7827c5164..252513f76 100644 --- a/src/world/format/io/data/BedrockWorldData.php +++ b/src/world/format/io/data/BedrockWorldData.php @@ -53,6 +53,11 @@ class BedrockWorldData extends BaseNbtWorldData{ public const GENERATOR_INFINITE = 1; public const GENERATOR_FLAT = 2; + /** + * @param mixed[] $options + * @phpstan-param class-string $generator + * @phpstan-param array $options + */ public static function generate(string $path, string $name, int $seed, string $generator, array $options = []) : void{ Utils::testValidInstance($generator, Generator::class); switch($generator){ diff --git a/src/world/format/io/data/JavaWorldData.php b/src/world/format/io/data/JavaWorldData.php index bd0d6490c..a51c5ce06 100644 --- a/src/world/format/io/data/JavaWorldData.php +++ b/src/world/format/io/data/JavaWorldData.php @@ -41,6 +41,11 @@ use function microtime; class JavaWorldData extends BaseNbtWorldData{ + /** + * @param mixed[] $options + * @phpstan-param class-string $generator + * @phpstan-param array $options + */ public static function generate(string $path, string $name, int $seed, string $generator, array $options = [], int $version = 19133) : void{ Utils::testValidInstance($generator, Generator::class); //TODO, add extra details diff --git a/src/world/format/io/region/RegionWorldProvider.php b/src/world/format/io/region/RegionWorldProvider.php index 33faba212..fc4abe590 100644 --- a/src/world/format/io/region/RegionWorldProvider.php +++ b/src/world/format/io/region/RegionWorldProvider.php @@ -72,6 +72,11 @@ abstract class RegionWorldProvider extends BaseWorldProvider{ return false; } + /** + * @param mixed[] $options + * @phpstan-param class-string $generator + * @phpstan-param array $options + */ public static function generate(string $path, string $name, int $seed, string $generator, array $options = []) : void{ Utils::testValidInstance($generator, Generator::class); if(!file_exists($path)){ diff --git a/src/world/generator/Generator.php b/src/world/generator/Generator.php index f57e431eb..b3221a692 100644 --- a/src/world/generator/Generator.php +++ b/src/world/generator/Generator.php @@ -52,7 +52,10 @@ abstract class Generator{ protected $world; /** @var int */ protected $seed; - /** @var array */ + /** + * @var mixed[] + * @phpstan-var array + */ protected $options; /** @var Random */