mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 16:24:05 +00:00
Modernize private property declarations in src/network
This commit is contained in:
parent
cd016bedce
commit
6eac2ea7a5
@ -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){
|
||||
|
@ -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){
|
||||
|
@ -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<string, int>
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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<int, array<int, Item>>
|
||||
*/
|
||||
private $initiatedSlotChanges = [];
|
||||
/** @var int */
|
||||
private $clientSelectedHotbarSlot = -1;
|
||||
private array $initiatedSlotChanges = [];
|
||||
private int $clientSelectedHotbarSlot = -1;
|
||||
|
||||
/** @phpstan-var ObjectSet<ContainerOpenClosure> */
|
||||
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']));
|
||||
|
||||
|
@ -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 = [];
|
||||
|
21
src/network/mcpe/cache/ChunkCache.php
vendored
21
src/network/mcpe/cache/ChunkCache.php
vendored
@ -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.
|
||||
|
2
src/network/mcpe/cache/CraftingDataCache.php
vendored
2
src/network/mcpe/cache/CraftingDataCache.php
vendored
@ -54,7 +54,7 @@ final class CraftingDataCache{
|
||||
* @var CraftingDataPacket[]
|
||||
* @phpstan-var array<int, CraftingDataPacket>
|
||||
*/
|
||||
private $caches = [];
|
||||
private array $caches = [];
|
||||
|
||||
public function getCache(CraftingManager $manager) : CraftingDataPacket{
|
||||
$id = spl_object_id($manager);
|
||||
|
13
src/network/mcpe/cache/StaticPacketCache.php
vendored
13
src/network/mcpe/cache/StaticPacketCache.php
vendored
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,25 +46,25 @@ final class ItemTranslator{
|
||||
* @var int[]
|
||||
* @phpstan-var array<int, int>
|
||||
*/
|
||||
private $simpleCoreToNetMapping = [];
|
||||
private array $simpleCoreToNetMapping = [];
|
||||
/**
|
||||
* @var int[]
|
||||
* @phpstan-var array<int, int>
|
||||
*/
|
||||
private $simpleNetToCoreMapping = [];
|
||||
private array $simpleNetToCoreMapping = [];
|
||||
|
||||
/**
|
||||
* runtimeId = array[internalId][metadata]
|
||||
* @var int[][]
|
||||
* @phpstan-var array<int, array<int, int>>
|
||||
*/
|
||||
private $complexCoreToNetMapping = [];
|
||||
private array $complexCoreToNetMapping = [];
|
||||
/**
|
||||
* [internalId, metadata] = array[runtimeId]
|
||||
* @var int[][]
|
||||
* @phpstan-var array<int, array{int, int}>
|
||||
*/
|
||||
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");
|
||||
|
@ -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;
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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(
|
||||
|
@ -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)();
|
||||
|
@ -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){
|
||||
|
@ -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)){
|
||||
|
@ -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();
|
||||
|
@ -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{
|
||||
|
@ -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)();
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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){
|
||||
|
@ -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<string, int>
|
||||
*/
|
||||
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");
|
||||
|
@ -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{
|
||||
|
@ -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<string, string>
|
||||
*/
|
||||
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();
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user