diff --git a/src/network/BandwidthStatsTracker.php b/src/network/BandwidthStatsTracker.php index 5d0b6e6c1..3c81d00e7 100644 --- a/src/network/BandwidthStatsTracker.php +++ b/src/network/BandwidthStatsTracker.php @@ -29,15 +29,10 @@ use function count; final class BandwidthStatsTracker{ /** @var int[] */ - private $history; - /** @var int */ - private $nextHistoryIndex = 0; - - /** @var int */ - private $bytesSinceLastRotation = 0; - - /** @var int */ - private $totalBytes = 0; + private array $history; + private int $nextHistoryIndex = 0; + private int $bytesSinceLastRotation = 0; + private int $totalBytes = 0; /** @phpstan-param positive-int $historySize */ public function __construct(int $historySize){ diff --git a/src/network/BidirectionalBandwidthStatsTracker.php b/src/network/BidirectionalBandwidthStatsTracker.php index f9ed1a564..47c9997f1 100644 --- a/src/network/BidirectionalBandwidthStatsTracker.php +++ b/src/network/BidirectionalBandwidthStatsTracker.php @@ -24,12 +24,8 @@ declare(strict_types=1); namespace pocketmine\network; final class BidirectionalBandwidthStatsTracker{ - - /** @var BandwidthStatsTracker */ - private $send; - - /** @var BandwidthStatsTracker */ - private $receive; + private BandwidthStatsTracker $send; + private BandwidthStatsTracker $receive; /** @phpstan-param positive-int $historySize */ public function __construct(int $historySize){ diff --git a/src/network/Network.php b/src/network/Network.php index 2470160ca..ac2932196 100644 --- a/src/network/Network.php +++ b/src/network/Network.php @@ -38,35 +38,28 @@ use const PHP_INT_MAX; class Network{ /** @var NetworkInterface[] */ - private $interfaces = []; + private array $interfaces = []; /** @var AdvancedNetworkInterface[] */ - private $advancedInterfaces = []; + private array $advancedInterfaces = []; /** @var RawPacketHandler[] */ - private $rawPacketHandlers = []; + private array $rawPacketHandlers = []; /** * @var int[] * @phpstan-var array */ - private $bannedIps = []; + private array $bannedIps = []; - /** @var BidirectionalBandwidthStatsTracker */ - private $bandwidthTracker; + private BidirectionalBandwidthStatsTracker $bandwidthTracker; + private string $name; + private NetworkSessionManager$sessionManager; - /** @var string */ - private $name; - - /** @var NetworkSessionManager */ - private $sessionManager; - - /** @var \Logger */ - private $logger; - - public function __construct(\Logger $logger){ + public function __construct( + private \Logger $logger + ){ $this->sessionManager = new NetworkSessionManager(); - $this->logger = $logger; $this->bandwidthTracker = new BidirectionalBandwidthStatsTracker(5); } diff --git a/src/network/NetworkSessionManager.php b/src/network/NetworkSessionManager.php index 509d3df90..ce583b3e5 100644 --- a/src/network/NetworkSessionManager.php +++ b/src/network/NetworkSessionManager.php @@ -30,7 +30,7 @@ use function spl_object_id; class NetworkSessionManager{ /** @var NetworkSession[] */ - private $sessions = []; + private array $sessions = []; /** * Adds a network session to the manager. This should only be called on session creation. diff --git a/src/network/mcpe/InventoryManager.php b/src/network/mcpe/InventoryManager.php index 5b463c59f..86fe0bbec 100644 --- a/src/network/mcpe/InventoryManager.php +++ b/src/network/mcpe/InventoryManager.php @@ -75,15 +75,9 @@ class InventoryManager{ private const RESERVED_WINDOW_ID_RANGE_START = ContainerIds::LAST - 10; private const HARDCODED_INVENTORY_WINDOW_ID = self::RESERVED_WINDOW_ID_RANGE_START + 2; - /** @var Player */ - private $player; - /** @var NetworkSession */ - private $session; - /** @var Inventory[] */ - private $windowMap = []; - /** @var int */ - private $lastInventoryNetworkId = ContainerIds::FIRST; + private array $windowMap = []; + private int $lastInventoryNetworkId = ContainerIds::FIRST; /** * TODO: HACK! This tracks GUIs for inventories that the server considers "always open" so that the client can't @@ -98,17 +92,16 @@ class InventoryManager{ * @var Item[][] * @phpstan-var array> */ - private $initiatedSlotChanges = []; - /** @var int */ - private $clientSelectedHotbarSlot = -1; + private array $initiatedSlotChanges = []; + private int $clientSelectedHotbarSlot = -1; /** @phpstan-var ObjectSet */ private ObjectSet $containerOpenCallbacks; - public function __construct(Player $player, NetworkSession $session){ - $this->player = $player; - $this->session = $session; - + public function __construct( + private Player $player, + private NetworkSession $session + ){ $this->containerOpenCallbacks = new ObjectSet(); $this->containerOpenCallbacks->add(\Closure::fromCallable([self::class, 'createContainerOpen'])); diff --git a/src/network/mcpe/StandardPacketBroadcaster.php b/src/network/mcpe/StandardPacketBroadcaster.php index 4da9b0951..6f6567b24 100644 --- a/src/network/mcpe/StandardPacketBroadcaster.php +++ b/src/network/mcpe/StandardPacketBroadcaster.php @@ -28,13 +28,7 @@ use pocketmine\Server; use function spl_object_id; final class StandardPacketBroadcaster implements PacketBroadcaster{ - - /** @var Server */ - private $server; - - public function __construct(Server $server){ - $this->server = $server; - } + public function __construct(private Server $server){} public function broadcastPackets(array $recipients, array $packets) : void{ $buffers = []; diff --git a/src/network/mcpe/cache/ChunkCache.php b/src/network/mcpe/cache/ChunkCache.php index f8107e356..11427be2c 100644 --- a/src/network/mcpe/cache/ChunkCache.php +++ b/src/network/mcpe/cache/ChunkCache.php @@ -79,23 +79,16 @@ class ChunkCache implements ChunkListener{ } } - /** @var World */ - private $world; - /** @var Compressor */ - private $compressor; - /** @var CompressBatchPromise[] */ - private $caches = []; + private array $caches = []; - /** @var int */ - private $hits = 0; - /** @var int */ - private $misses = 0; + private int $hits = 0; + private int $misses = 0; - private function __construct(World $world, Compressor $compressor){ - $this->world = $world; - $this->compressor = $compressor; - } + private function __construct( + private World $world, + private Compressor $compressor + ){} /** * Requests asynchronous preparation of the chunk at the given coordinates. diff --git a/src/network/mcpe/cache/CraftingDataCache.php b/src/network/mcpe/cache/CraftingDataCache.php index bd5673770..1f09525d8 100644 --- a/src/network/mcpe/cache/CraftingDataCache.php +++ b/src/network/mcpe/cache/CraftingDataCache.php @@ -54,7 +54,7 @@ final class CraftingDataCache{ * @var CraftingDataPacket[] * @phpstan-var array */ - private $caches = []; + private array $caches = []; public function getCache(CraftingManager $manager) : CraftingDataPacket{ $id = spl_object_id($manager); diff --git a/src/network/mcpe/cache/StaticPacketCache.php b/src/network/mcpe/cache/StaticPacketCache.php index 39b8ea774..8a2afe137 100644 --- a/src/network/mcpe/cache/StaticPacketCache.php +++ b/src/network/mcpe/cache/StaticPacketCache.php @@ -34,11 +34,6 @@ use function file_get_contents; class StaticPacketCache{ use SingletonTrait; - /** @var BiomeDefinitionListPacket */ - private $biomeDefs; - /** @var AvailableActorIdentifiersPacket */ - private $availableActorIdentifiers; - /** * @phpstan-return CacheableNbt<\pocketmine\nbt\tag\CompoundTag> */ @@ -55,10 +50,10 @@ class StaticPacketCache{ ); } - public function __construct(BiomeDefinitionListPacket $biomeDefs, AvailableActorIdentifiersPacket $availableActorIdentifiers){ - $this->biomeDefs = $biomeDefs; - $this->availableActorIdentifiers = $availableActorIdentifiers; - } + public function __construct( + private BiomeDefinitionListPacket $biomeDefs, + private AvailableActorIdentifiersPacket $availableActorIdentifiers + ){} public function getBiomeDefs() : BiomeDefinitionListPacket{ return $this->biomeDefs; diff --git a/src/network/mcpe/compression/CompressBatchPromise.php b/src/network/mcpe/compression/CompressBatchPromise.php index c62388f6a..0736825b7 100644 --- a/src/network/mcpe/compression/CompressBatchPromise.php +++ b/src/network/mcpe/compression/CompressBatchPromise.php @@ -31,13 +31,11 @@ class CompressBatchPromise{ * @var \Closure[] * @phpstan-var (\Closure(self) : void)[] */ - private $callbacks = []; + private array $callbacks = []; - /** @var string|null */ - private $result = null; + private ?string $result = null; - /** @var bool */ - private $cancelled = false; + private bool $cancelled = false; /** * @phpstan-param \Closure(self) : void ...$callbacks diff --git a/src/network/mcpe/compression/ZlibCompressor.php b/src/network/mcpe/compression/ZlibCompressor.php index a489aa153..b9529a898 100644 --- a/src/network/mcpe/compression/ZlibCompressor.php +++ b/src/network/mcpe/compression/ZlibCompressor.php @@ -46,21 +46,14 @@ final class ZlibCompressor implements Compressor{ return new self(self::DEFAULT_LEVEL, self::DEFAULT_THRESHOLD, self::DEFAULT_MAX_DECOMPRESSION_SIZE); } - /** @var int */ - private $level; - /** @var int */ - private $threshold; - /** @var int */ - private $maxDecompressionSize; - - public function __construct(int $level, int $minCompressionSize, int $maxDecompressionSize){ - $this->level = $level; - $this->threshold = $minCompressionSize; - $this->maxDecompressionSize = $maxDecompressionSize; - } + public function __construct( + private int $level, + private int $minCompressionSize, + private int $maxDecompressionSize + ){} public function willCompress(string $data) : bool{ - return $this->threshold > -1 && strlen($data) >= $this->threshold; + return $this->minCompressionSize > -1 && strlen($data) >= $this->minCompressionSize; } /** diff --git a/src/network/mcpe/convert/ItemTranslator.php b/src/network/mcpe/convert/ItemTranslator.php index d00a6f90c..5dac8334a 100644 --- a/src/network/mcpe/convert/ItemTranslator.php +++ b/src/network/mcpe/convert/ItemTranslator.php @@ -46,25 +46,25 @@ final class ItemTranslator{ * @var int[] * @phpstan-var array */ - private $simpleCoreToNetMapping = []; + private array $simpleCoreToNetMapping = []; /** * @var int[] * @phpstan-var array */ - private $simpleNetToCoreMapping = []; + private array $simpleNetToCoreMapping = []; /** * runtimeId = array[internalId][metadata] * @var int[][] * @phpstan-var array> */ - private $complexCoreToNetMapping = []; + private array $complexCoreToNetMapping = []; /** * [internalId, metadata] = array[runtimeId] * @var int[][] * @phpstan-var array */ - private $complexNetToCoreMapping = []; + private array $complexNetToCoreMapping = []; private static function make() : self{ $data = Utils::assumeNotFalse(file_get_contents(Path::join(\pocketmine\BEDROCK_DATA_PATH, 'r16_to_current_item_map.json')), "Missing required resource file"); diff --git a/src/network/mcpe/convert/R12ToCurrentBlockMapEntry.php b/src/network/mcpe/convert/R12ToCurrentBlockMapEntry.php index 1244d2745..b5b2dbb6b 100644 --- a/src/network/mcpe/convert/R12ToCurrentBlockMapEntry.php +++ b/src/network/mcpe/convert/R12ToCurrentBlockMapEntry.php @@ -26,19 +26,11 @@ namespace pocketmine\network\mcpe\convert; use pocketmine\nbt\tag\CompoundTag; final class R12ToCurrentBlockMapEntry{ - - /** @var string */ - private $id; - /** @var int */ - private $meta; - /** @var CompoundTag */ - private $blockState; - - public function __construct(string $id, int $meta, CompoundTag $blockState){ - $this->id = $id; - $this->meta = $meta; - $this->blockState = $blockState; - } + public function __construct( + private string $id, + private int $meta, + private CompoundTag $blockState + ){} public function getId() : string{ return $this->id; diff --git a/src/network/mcpe/convert/RuntimeBlockMapping.php b/src/network/mcpe/convert/RuntimeBlockMapping.php index a6344eb79..3f616e5ba 100644 --- a/src/network/mcpe/convert/RuntimeBlockMapping.php +++ b/src/network/mcpe/convert/RuntimeBlockMapping.php @@ -42,11 +42,11 @@ final class RuntimeBlockMapping{ use SingletonTrait; /** @var int[] */ - private $legacyToRuntimeMap = []; + private array $legacyToRuntimeMap = []; /** @var int[] */ - private $runtimeToLegacyMap = []; + private array $runtimeToLegacyMap = []; /** @var CompoundTag[] */ - private $bedrockKnownStates; + private array $bedrockKnownStates; private static function make() : self{ return new self( diff --git a/src/network/mcpe/convert/TypeConverter.php b/src/network/mcpe/convert/TypeConverter.php index 3d6cf9649..e010a27e9 100644 --- a/src/network/mcpe/convert/TypeConverter.php +++ b/src/network/mcpe/convert/TypeConverter.php @@ -60,8 +60,7 @@ class TypeConverter{ private const PM_ID_TAG = "___Id___"; private const PM_META_TAG = "___Meta___"; - /** @var int */ - private $shieldRuntimeId; + private int $shieldRuntimeId; public function __construct(){ //TODO: inject stuff via constructor diff --git a/src/network/mcpe/encryption/EncryptionContext.php b/src/network/mcpe/encryption/EncryptionContext.php index f8515c9c6..ff11b976d 100644 --- a/src/network/mcpe/encryption/EncryptionContext.php +++ b/src/network/mcpe/encryption/EncryptionContext.php @@ -37,18 +37,13 @@ class EncryptionContext{ /** @var bool */ public static $ENABLED = true; - /** @var string */ - private $key; + private string $key; - /** @var Cipher */ - private $decryptCipher; + private Cipher $decryptCipher; + private int $decryptCounter = 0; - /** @var int */ - private $decryptCounter = 0; - /** @var Cipher */ - private $encryptCipher; - /** @var int */ - private $encryptCounter = 0; + private Cipher $encryptCipher; + private int $encryptCounter = 0; public function __construct(string $encryptionKey, string $algorithm, string $iv){ $this->key = $encryptionKey; diff --git a/src/network/mcpe/handler/DeathPacketHandler.php b/src/network/mcpe/handler/DeathPacketHandler.php index bc56729c9..3d710df11 100644 --- a/src/network/mcpe/handler/DeathPacketHandler.php +++ b/src/network/mcpe/handler/DeathPacketHandler.php @@ -32,18 +32,11 @@ use pocketmine\network\mcpe\protocol\types\PlayerAction; use pocketmine\player\Player; class DeathPacketHandler extends PacketHandler{ - - /** @var Player */ - private $player; - /** @var NetworkSession */ - private $session; - private InventoryManager $inventoryManager; - - public function __construct(Player $player, NetworkSession $session, InventoryManager $inventoryManager){ - $this->player = $player; - $this->session = $session; - $this->inventoryManager = $inventoryManager; - } + public function __construct( + private Player $player, + private NetworkSession $session, + private InventoryManager $inventoryManager + ){} public function setUp() : void{ $this->session->sendDataPacket(RespawnPacket::create( diff --git a/src/network/mcpe/handler/HandshakePacketHandler.php b/src/network/mcpe/handler/HandshakePacketHandler.php index ed64da49f..b18eaf7f8 100644 --- a/src/network/mcpe/handler/HandshakePacketHandler.php +++ b/src/network/mcpe/handler/HandshakePacketHandler.php @@ -29,19 +29,10 @@ use pocketmine\network\mcpe\protocol\ClientToServerHandshakePacket; * Handler responsible for awaiting client response from crypto handshake. */ class HandshakePacketHandler extends PacketHandler{ - - /** - * @var \Closure - * @phpstan-var \Closure() : void - */ - private $onHandshakeCompleted; - /** * @phpstan-param \Closure() : void $onHandshakeCompleted */ - public function __construct(\Closure $onHandshakeCompleted){ - $this->onHandshakeCompleted = $onHandshakeCompleted; - } + public function __construct(private \Closure $onHandshakeCompleted){} public function handleClientToServerHandshake(ClientToServerHandshakePacket $packet) : bool{ ($this->onHandshakeCompleted)(); diff --git a/src/network/mcpe/handler/InGamePacketHandler.php b/src/network/mcpe/handler/InGamePacketHandler.php index fe40ab6e8..ba8163451 100644 --- a/src/network/mcpe/handler/InGamePacketHandler.php +++ b/src/network/mcpe/handler/InGamePacketHandler.php @@ -135,11 +135,6 @@ use const JSON_THROW_ON_ERROR; class InGamePacketHandler extends PacketHandler{ private const MAX_FORM_RESPONSE_DEPTH = 2; //modal/simple will be 1, custom forms 2 - they will never contain anything other than string|int|float|bool|null - /** @var Player */ - private $player; - /** @var NetworkSession */ - private $session; - /** @var CraftingTransaction|null */ protected $craftingTransaction = null; @@ -151,13 +146,11 @@ class InGamePacketHandler extends PacketHandler{ /** @var bool */ public $forceMoveSync = false; - private InventoryManager $inventoryManager; - - public function __construct(Player $player, NetworkSession $session, InventoryManager $inventoryManager){ - $this->player = $player; - $this->session = $session; - $this->inventoryManager = $inventoryManager; - } + public function __construct( + private Player $player, + private NetworkSession $session, + private InventoryManager $inventoryManager + ){} public function handleText(TextPacket $packet) : bool{ if($packet->type === TextPacket::TYPE_CHAT){ diff --git a/src/network/mcpe/handler/LoginPacketHandler.php b/src/network/mcpe/handler/LoginPacketHandler.php index f2ff2e0df..b41063716 100644 --- a/src/network/mcpe/handler/LoginPacketHandler.php +++ b/src/network/mcpe/handler/LoginPacketHandler.php @@ -51,32 +51,16 @@ use function is_array; * Handles the initial login phase of the session. This handler is used as the initial state. */ class LoginPacketHandler extends PacketHandler{ - - /** @var Server */ - private $server; - /** @var NetworkSession */ - private $session; - /** - * @var \Closure - * @phpstan-var \Closure(PlayerInfo) : void - */ - private $playerInfoConsumer; - /** - * @var \Closure - * @phpstan-var \Closure(bool, bool, ?string, ?string) : void - */ - private $authCallback; - /** * @phpstan-param \Closure(PlayerInfo) : void $playerInfoConsumer * @phpstan-param \Closure(bool $isAuthenticated, bool $authRequired, ?string $error, ?string $clientPubKey) : void $authCallback */ - public function __construct(Server $server, NetworkSession $session, \Closure $playerInfoConsumer, \Closure $authCallback){ - $this->session = $session; - $this->server = $server; - $this->playerInfoConsumer = $playerInfoConsumer; - $this->authCallback = $authCallback; - } + public function __construct( + private Server $server, + private NetworkSession $session, + private \Closure $playerInfoConsumer, + private \Closure $authCallback + ){} public function handleLogin(LoginPacket $packet) : bool{ if(!$this->isCompatibleProtocol($packet->protocol)){ diff --git a/src/network/mcpe/handler/PreSpawnPacketHandler.php b/src/network/mcpe/handler/PreSpawnPacketHandler.php index 626f7a3eb..c3858261d 100644 --- a/src/network/mcpe/handler/PreSpawnPacketHandler.php +++ b/src/network/mcpe/handler/PreSpawnPacketHandler.php @@ -48,22 +48,12 @@ use function sprintf; * Handler used for the pre-spawn phase of the session. */ class PreSpawnPacketHandler extends PacketHandler{ - - /** @var Server */ - private $server; - /** @var Player */ - private $player; - /** @var NetworkSession */ - private $session; - - private InventoryManager $inventoryManager; - - public function __construct(Server $server, Player $player, NetworkSession $session, InventoryManager $inventoryManager){ - $this->player = $player; - $this->server = $server; - $this->session = $session; - $this->inventoryManager = $inventoryManager; - } + public function __construct( + private Server $server, + private Player $player, + private NetworkSession $session, + private InventoryManager $inventoryManager + ){} public function setUp() : void{ $location = $this->player->getLocation(); diff --git a/src/network/mcpe/handler/ResourcePacksPacketHandler.php b/src/network/mcpe/handler/ResourcePacksPacketHandler.php index 356a95a76..04dddb242 100644 --- a/src/network/mcpe/handler/ResourcePacksPacketHandler.php +++ b/src/network/mcpe/handler/ResourcePacksPacketHandler.php @@ -52,27 +52,17 @@ use function substr; class ResourcePacksPacketHandler extends PacketHandler{ private const PACK_CHUNK_SIZE = 128 * 1024; //128KB - /** @var NetworkSession */ - private $session; - /** @var ResourcePackManager */ - private $resourcePackManager; - /** - * @var \Closure - * @phpstan-var \Closure() : void - */ - private $completionCallback; - /** @var bool[][] uuid => [chunk index => hasSent] */ - private $downloadedChunks = []; + private array $downloadedChunks = []; /** * @phpstan-param \Closure() : void $completionCallback */ - public function __construct(NetworkSession $session, ResourcePackManager $resourcePackManager, \Closure $completionCallback){ - $this->session = $session; - $this->resourcePackManager = $resourcePackManager; - $this->completionCallback = $completionCallback; - } + public function __construct( + private NetworkSession $session, + private ResourcePackManager $resourcePackManager, + private \Closure $completionCallback + ){} public function setUp() : void{ $resourcePackEntries = array_map(static function(ResourcePack $pack) : ResourcePackInfoEntry{ diff --git a/src/network/mcpe/handler/SpawnResponsePacketHandler.php b/src/network/mcpe/handler/SpawnResponsePacketHandler.php index cc33a6908..92c412a75 100644 --- a/src/network/mcpe/handler/SpawnResponsePacketHandler.php +++ b/src/network/mcpe/handler/SpawnResponsePacketHandler.php @@ -26,19 +26,10 @@ namespace pocketmine\network\mcpe\handler; use pocketmine\network\mcpe\protocol\SetLocalPlayerAsInitializedPacket; final class SpawnResponsePacketHandler extends PacketHandler{ - - /** - * @var \Closure - * @phpstan-var \Closure() : void - */ - private $responseCallback; - /** * @phpstan-param \Closure() : void $responseCallback */ - public function __construct(\Closure $responseCallback){ - $this->responseCallback = $responseCallback; - } + public function __construct(private \Closure $responseCallback){} public function handleSetLocalPlayerAsInitialized(SetLocalPlayerAsInitializedPacket $packet) : bool{ ($this->responseCallback)(); diff --git a/src/network/mcpe/raklib/PthreadsChannelReader.php b/src/network/mcpe/raklib/PthreadsChannelReader.php index 4b32b0f38..4a8d82a37 100644 --- a/src/network/mcpe/raklib/PthreadsChannelReader.php +++ b/src/network/mcpe/raklib/PthreadsChannelReader.php @@ -26,12 +26,7 @@ namespace pocketmine\network\mcpe\raklib; use raklib\server\ipc\InterThreadChannelReader; final class PthreadsChannelReader implements InterThreadChannelReader{ - /** @var \Threaded */ - private $buffer; - - public function __construct(\Threaded $buffer){ - $this->buffer = $buffer; - } + public function __construct(private \Threaded $buffer){} public function read() : ?string{ return $this->buffer->shift(); diff --git a/src/network/mcpe/raklib/PthreadsChannelWriter.php b/src/network/mcpe/raklib/PthreadsChannelWriter.php index a51c08c4d..168d3c624 100644 --- a/src/network/mcpe/raklib/PthreadsChannelWriter.php +++ b/src/network/mcpe/raklib/PthreadsChannelWriter.php @@ -20,12 +20,7 @@ namespace pocketmine\network\mcpe\raklib; use raklib\server\ipc\InterThreadChannelWriter; final class PthreadsChannelWriter implements InterThreadChannelWriter{ - /** @var \Threaded */ - private $buffer; - - public function __construct(\Threaded $buffer){ - $this->buffer = $buffer; - } + public function __construct(private \Threaded $buffer){} public function write(string $str) : void{ $this->buffer[] = $str; diff --git a/src/network/mcpe/raklib/RakLibInterface.php b/src/network/mcpe/raklib/RakLibInterface.php index 5d34ad352..828fff9af 100644 --- a/src/network/mcpe/raklib/RakLibInterface.php +++ b/src/network/mcpe/raklib/RakLibInterface.php @@ -62,31 +62,21 @@ class RakLibInterface implements ServerEventListener, AdvancedNetworkInterface{ private const MCPE_RAKNET_PACKET_ID = "\xfe"; - /** @var Server */ - private $server; + private Server $server; + private Network $network; - /** @var Network */ - private $network; - - /** @var int */ - private $rakServerId; - - /** @var RakLibServer */ - private $rakLib; + private int $rakServerId; + private RakLibServer $rakLib; /** @var NetworkSession[] */ - private $sessions = []; + private array $sessions = []; - /** @var RakLibToUserThreadMessageReceiver */ - private $eventReceiver; - /** @var UserToRakLibThreadMessageSender */ - private $interface; + private RakLibToUserThreadMessageReceiver $eventReceiver; + private UserToRakLibThreadMessageSender $interface; - /** @var SleeperNotifier */ - private $sleeper; + private SleeperNotifier $sleeper; - /** @var PacketBroadcaster */ - private $broadcaster; + private PacketBroadcaster $broadcaster; public function __construct(Server $server, string $ip, int $port, bool $ipV6){ $this->server = $server; diff --git a/src/network/mcpe/raklib/RakLibPacketSender.php b/src/network/mcpe/raklib/RakLibPacketSender.php index 11821959b..3708d415b 100644 --- a/src/network/mcpe/raklib/RakLibPacketSender.php +++ b/src/network/mcpe/raklib/RakLibPacketSender.php @@ -26,19 +26,12 @@ namespace pocketmine\network\mcpe\raklib; use pocketmine\network\mcpe\PacketSender; class RakLibPacketSender implements PacketSender{ + private bool $closed = false; - /** @var int */ - private $sessionId; - /** @var RakLibInterface */ - private $handler; - - /** @var bool */ - private $closed = false; - - public function __construct(int $sessionId, RakLibInterface $handler){ - $this->sessionId = $sessionId; - $this->handler = $handler; - } + public function __construct( + private int $sessionId, + private RakLibInterface $handler + ){} public function send(string $payload, bool $immediate) : void{ if(!$this->closed){ diff --git a/src/network/query/DedicatedQueryNetworkInterface.php b/src/network/query/DedicatedQueryNetworkInterface.php index 70a021a5a..1d0a4da3c 100644 --- a/src/network/query/DedicatedQueryNetworkInterface.php +++ b/src/network/query/DedicatedQueryNetworkInterface.php @@ -59,29 +59,22 @@ use const SOL_UDP; * or running on a different port than Query. */ final class DedicatedQueryNetworkInterface implements AdvancedNetworkInterface{ - - /** @var string */ - private $ip; - /** @var int */ - private $port; - /** @var \Logger */ - private $logger; private \Socket $socket; - /** @var Network */ - private $network; + private Network $network; /** * @var int[] address => timeout time * @phpstan-var array */ - private $blockedIps = []; + private array $blockedIps = []; /** @var string[] */ - private $rawPacketPatterns = []; - - public function __construct(string $ip, int $port, bool $ipV6, \Logger $logger){ - $this->ip = $ip; - $this->port = $port; - $this->logger = $logger; + private array $rawPacketPatterns = []; + public function __construct( + private string $ip, + private int $port, + bool $ipV6, + private \Logger $logger + ){ $socket = @socket_create($ipV6 ? AF_INET6 : AF_INET, SOCK_DGRAM, SOL_UDP); if($socket === false){ throw new \RuntimeException("Failed to create socket"); diff --git a/src/network/query/QueryHandler.php b/src/network/query/QueryHandler.php index 06b3c5ab0..e87866e8e 100644 --- a/src/network/query/QueryHandler.php +++ b/src/network/query/QueryHandler.php @@ -40,21 +40,17 @@ use function strlen; use function substr; class QueryHandler implements RawPacketHandler{ - /** @var Server */ - private $server; - /** @var string */ - private $lastToken; - /** @var string */ - private $token; + private string $lastToken; + private string $token; - /** @var \Logger */ - private $logger; + private \Logger $logger; public const HANDSHAKE = 9; public const STATISTICS = 0; - public function __construct(Server $server){ - $this->server = $server; + public function __construct( + private Server $server + ){ $this->logger = new \PrefixedLogger($this->server->getLogger(), "Query Handler"); /* @@ -66,7 +62,7 @@ class QueryHandler implements RawPacketHandler{ packets can conflict with the MCPE ones. */ - $this->regenerateToken(); + $this->token = $this->generateToken(); $this->lastToken = $this->token; } @@ -74,9 +70,13 @@ class QueryHandler implements RawPacketHandler{ return '/^\xfe\xfd.+$/s'; } + private function generateToken() : string{ + return random_bytes(16); + } + public function regenerateToken() : void{ $this->lastToken = $this->token; - $this->token = random_bytes(16); + $this->token = $this->generateToken(); } public static function getTokenString(string $token, string $salt) : int{ diff --git a/src/network/query/QueryInfo.php b/src/network/query/QueryInfo.php index 5275edba7..db14aeb4a 100644 --- a/src/network/query/QueryInfo.php +++ b/src/network/query/QueryInfo.php @@ -37,44 +37,31 @@ use function substr; final class QueryInfo{ public const GAME_ID = "MINECRAFTPE"; - /** @var string */ - private $serverName; - /** @var bool */ - private $listPlugins; + private string $serverName; + private bool $listPlugins; /** @var Plugin[] */ - private $plugins; + private array $plugins; /** @var Player[] */ - private $players; + private array $players; - /** @var string */ - private $gametype; - /** @var string */ - private $version; - /** @var string */ - private $server_engine; - /** @var string */ - private $map; - /** @var int */ - private $numPlayers; - /** @var int */ - private $maxPlayers; - /** @var string */ - private $whitelist; - /** @var int */ - private $port; - /** @var string */ - private $ip; + private string $gametype; + private string $version; + private string $server_engine; + private string $map; + private int $numPlayers; + private int $maxPlayers; + private string $whitelist; + private int $port; + private string $ip; /** * @var string[] * @phpstan-var array */ - private $extraData = []; + private array $extraData = []; - /** @var string|null */ - private $longQueryCache = null; - /** @var string|null */ - private $shortQueryCache = null; + private ?string $longQueryCache = null; + private ?string $shortQueryCache = null; public function __construct(Server $server){ $this->serverName = $server->getMotd(); diff --git a/src/network/upnp/UPnPNetworkInterface.php b/src/network/upnp/UPnPNetworkInterface.php index 45e8a1171..0994d6068 100644 --- a/src/network/upnp/UPnPNetworkInterface.php +++ b/src/network/upnp/UPnPNetworkInterface.php @@ -28,24 +28,17 @@ use pocketmine\utils\Internet; use pocketmine\utils\InternetException; final class UPnPNetworkInterface implements NetworkInterface{ + private ?string $serviceURL = null; - /** @var string */ - private $ip; - /** @var int */ - private $port; - - /** @var string|null */ - private $serviceURL = null; - /** @var \Logger */ - private $logger; - - public function __construct(\Logger $logger, string $ip, int $port){ + public function __construct( + private \Logger $logger, + private string $ip, + private int $port + ){ if(!Internet::$online){ throw new \RuntimeException("Server is offline"); } - $this->ip = $ip; - $this->port = $port; $this->logger = new \PrefixedLogger($logger, "UPnP Port Forwarder"); }