diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 8ed1746f4..4d4915ba2 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -103,6 +103,7 @@ use pocketmine\network\mcpe\protocol\AvailableCommandsPacket; use pocketmine\network\mcpe\protocol\BlockEntityDataPacket; use pocketmine\network\mcpe\protocol\BookEditPacket; use pocketmine\network\mcpe\protocol\ChunkRadiusUpdatedPacket; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\EntityEventPacket; use pocketmine\network\mcpe\protocol\ItemFrameDropItemPacket; use pocketmine\network\mcpe\protocol\LevelEventPacket; @@ -112,7 +113,6 @@ use pocketmine\network\mcpe\protocol\MobEffectPacket; use pocketmine\network\mcpe\protocol\ModalFormRequestPacket; use pocketmine\network\mcpe\protocol\MovePlayerPacket; use pocketmine\network\mcpe\protocol\NetworkChunkPublisherUpdatePacket; -use pocketmine\network\mcpe\protocol\Packet; use pocketmine\network\mcpe\protocol\SetPlayerGameTypePacket; use pocketmine\network\mcpe\protocol\SetSpawnPositionPacket; use pocketmine\network\mcpe\protocol\SetTitlePacket; @@ -2546,12 +2546,12 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ } /** - * @param Packet $packet - * @param bool $immediate + * @param ClientboundPacket $packet + * @param bool $immediate * * @return bool */ - public function sendDataPacket(Packet $packet, bool $immediate = false) : bool{ + public function sendDataPacket(ClientboundPacket $packet, bool $immediate = false) : bool{ if(!$this->isConnected()){ return false; } @@ -2568,11 +2568,11 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ * @deprecated This is a proxy for sendDataPacket() and will be removed in the next major release. * @see Player::sendDataPacket() * - * @param Packet $packet + * @param ClientboundPacket $packet * * @return bool */ - public function dataPacket(Packet $packet) : bool{ + public function dataPacket(ClientboundPacket $packet) : bool{ return $this->sendDataPacket($packet, false); } diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index f79d470a1..b838ff906 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -75,7 +75,7 @@ use pocketmine\network\mcpe\NetworkCipher; use pocketmine\network\mcpe\NetworkCompression; use pocketmine\network\mcpe\NetworkSession; use pocketmine\network\mcpe\PacketStream; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\PlayerListPacket; use pocketmine\network\mcpe\protocol\ProtocolInfo; use pocketmine\network\mcpe\protocol\types\PlayerListEntry; @@ -1535,18 +1535,18 @@ class Server{ /** * Broadcasts a Minecraft packet to a list of players * - * @param Player[] $players - * @param Packet $packet + * @param Player[] $players + * @param ClientboundPacket $packet * * @return bool */ - public function broadcastPacket(array $players, Packet $packet) : bool{ + public function broadcastPacket(array $players, ClientboundPacket $packet) : bool{ return $this->broadcastPackets($players, [$packet]); } /** - * @param Player[] $players - * @param Packet[] $packets + * @param Player[] $players + * @param ClientboundPacket[] $packets * * @return bool */ diff --git a/src/pocketmine/event/server/DataPacketBroadcastEvent.php b/src/pocketmine/event/server/DataPacketBroadcastEvent.php index 364b45c55..d42d6ea3f 100644 --- a/src/pocketmine/event/server/DataPacketBroadcastEvent.php +++ b/src/pocketmine/event/server/DataPacketBroadcastEvent.php @@ -25,7 +25,7 @@ namespace pocketmine\event\server; use pocketmine\event\Cancellable; use pocketmine\event\CancellableTrait; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\Player; /** @@ -36,12 +36,12 @@ class DataPacketBroadcastEvent extends ServerEvent implements Cancellable{ /** @var Player[] */ private $players; - /** @var Packet[] */ + /** @var ClientboundPacket[] */ private $packets; /** - * @param Player[] $players - * @param Packet[] $packets + * @param Player[] $players + * @param ClientboundPacket[] $packets */ public function __construct(array $players, array $packets){ $this->players = $players; @@ -63,14 +63,14 @@ class DataPacketBroadcastEvent extends ServerEvent implements Cancellable{ } /** - * @return Packet[] + * @return ClientboundPacket[] */ public function getPackets() : array{ return $this->packets; } /** - * @param Packet[] $packets + * @param ClientboundPacket[] $packets */ public function setPackets(array $packets) : void{ $this->packets = $packets; diff --git a/src/pocketmine/event/server/DataPacketReceiveEvent.php b/src/pocketmine/event/server/DataPacketReceiveEvent.php index 8ed8e2de0..946cd7ee9 100644 --- a/src/pocketmine/event/server/DataPacketReceiveEvent.php +++ b/src/pocketmine/event/server/DataPacketReceiveEvent.php @@ -25,30 +25,30 @@ namespace pocketmine\event\server; use pocketmine\event\Cancellable; use pocketmine\event\CancellableTrait; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ServerboundPacket; use pocketmine\Player; class DataPacketReceiveEvent extends ServerEvent implements Cancellable{ use CancellableTrait; - /** @var Packet */ + /** @var ServerboundPacket */ private $packet; /** @var Player */ private $player; /** - * @param Player $player - * @param Packet $packet + * @param Player $player + * @param ServerboundPacket $packet */ - public function __construct(Player $player, Packet $packet){ + public function __construct(Player $player, ServerboundPacket $packet){ $this->packet = $packet; $this->player = $player; } /** - * @return Packet + * @return ServerboundPacket */ - public function getPacket() : Packet{ + public function getPacket() : ServerboundPacket{ return $this->packet; } diff --git a/src/pocketmine/event/server/DataPacketSendEvent.php b/src/pocketmine/event/server/DataPacketSendEvent.php index 32c839900..c14b16037 100644 --- a/src/pocketmine/event/server/DataPacketSendEvent.php +++ b/src/pocketmine/event/server/DataPacketSendEvent.php @@ -25,30 +25,30 @@ namespace pocketmine\event\server; use pocketmine\event\Cancellable; use pocketmine\event\CancellableTrait; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\Player; class DataPacketSendEvent extends ServerEvent implements Cancellable{ use CancellableTrait; - /** @var Packet */ + /** @var ClientboundPacket */ private $packet; /** @var Player */ private $player; /** - * @param Player $player - * @param Packet $packet + * @param Player $player + * @param ClientboundPacket $packet */ - public function __construct(Player $player, Packet $packet){ + public function __construct(Player $player, ClientboundPacket $packet){ $this->packet = $packet; $this->player = $player; } /** - * @return Packet + * @return ClientboundPacket */ - public function getPacket() : Packet{ + public function getPacket() : ClientboundPacket{ return $this->packet; } diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 94ba6eb21..47d9dd04a 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -73,9 +73,9 @@ use pocketmine\nbt\tag\StringTag; use pocketmine\network\mcpe\ChunkRequestTask; use pocketmine\network\mcpe\CompressBatchPromise; use pocketmine\network\mcpe\protocol\AddEntityPacket; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\LevelEventPacket; use pocketmine\network\mcpe\protocol\LevelSoundEventPacket; -use pocketmine\network\mcpe\protocol\Packet; use pocketmine\network\mcpe\protocol\SetDifficultyPacket; use pocketmine\network\mcpe\protocol\SetTimePacket; use pocketmine\network\mcpe\protocol\UpdateBlockPacket; @@ -180,9 +180,9 @@ class Level implements ChunkManager, Metadatable{ /** @var Player[][] */ private $playerLoaders = []; - /** @var Packet[][] */ + /** @var ClientboundPacket[][] */ private $chunkPackets = []; - /** @var Packet[] */ + /** @var ClientboundPacket[] */ private $globalPackets = []; /** @var float[] */ @@ -598,11 +598,11 @@ class Level implements ChunkManager, Metadatable{ * Queues a packet to be sent to all players using the chunk at the specified X/Z coordinates at the end of the * current tick. * - * @param int $chunkX - * @param int $chunkZ - * @param Packet $packet + * @param int $chunkX + * @param int $chunkZ + * @param ClientboundPacket $packet */ - public function addChunkPacket(int $chunkX, int $chunkZ, Packet $packet){ + public function addChunkPacket(int $chunkX, int $chunkZ, ClientboundPacket $packet){ if(!isset($this->chunkPackets[$index = Level::chunkHash($chunkX, $chunkZ)])){ $this->chunkPackets[$index] = [$packet]; }else{ @@ -613,19 +613,19 @@ class Level implements ChunkManager, Metadatable{ /** * Broadcasts a packet to every player who has the target position within their view distance. * - * @param Vector3 $pos - * @param Packet $packet + * @param Vector3 $pos + * @param ClientboundPacket $packet */ - public function broadcastPacketToViewers(Vector3 $pos, Packet $packet) : void{ + public function broadcastPacketToViewers(Vector3 $pos, ClientboundPacket $packet) : void{ $this->addChunkPacket($pos->getFloorX() >> 4, $pos->getFloorZ() >> 4, $packet); } /** * Broadcasts a packet to every player in the level. * - * @param Packet $packet + * @param ClientboundPacket $packet */ - public function broadcastGlobalPacket(Packet $packet) : void{ + public function broadcastGlobalPacket(ClientboundPacket $packet) : void{ $this->globalPackets[] = $packet; } diff --git a/src/pocketmine/level/particle/Particle.php b/src/pocketmine/level/particle/Particle.php index cef6dbcc8..ccf97d35b 100644 --- a/src/pocketmine/level/particle/Particle.php +++ b/src/pocketmine/level/particle/Particle.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace pocketmine\level\particle; use pocketmine\math\Vector3; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ClientboundPacket; abstract class Particle{ @@ -86,7 +86,7 @@ abstract class Particle{ /** * @param Vector3 $pos * - * @return Packet|Packet[] + * @return ClientboundPacket|ClientboundPacket[] */ abstract public function encode(Vector3 $pos); diff --git a/src/pocketmine/level/sound/Sound.php b/src/pocketmine/level/sound/Sound.php index 8cf77770d..20b7533ae 100644 --- a/src/pocketmine/level/sound/Sound.php +++ b/src/pocketmine/level/sound/Sound.php @@ -24,14 +24,14 @@ declare(strict_types=1); namespace pocketmine\level\sound; use pocketmine\math\Vector3; -use pocketmine\network\mcpe\protocol\Packet; +use pocketmine\network\mcpe\protocol\ClientboundPacket; abstract class Sound{ /** * @param Vector3 $pos * - * @return Packet|Packet[] + * @return ClientboundPacket|ClientboundPacket[] */ abstract public function encode(Vector3 $pos); diff --git a/src/pocketmine/network/mcpe/NetworkSession.php b/src/pocketmine/network/mcpe/NetworkSession.php index f91e327e2..0d4a9e404 100644 --- a/src/pocketmine/network/mcpe/NetworkSession.php +++ b/src/pocketmine/network/mcpe/NetworkSession.php @@ -34,10 +34,12 @@ use pocketmine\network\mcpe\handler\PreSpawnSessionHandler; use pocketmine\network\mcpe\handler\ResourcePacksSessionHandler; use pocketmine\network\mcpe\handler\SessionHandler; use pocketmine\network\mcpe\handler\SimpleSessionHandler; +use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\DisconnectPacket; use pocketmine\network\mcpe\protocol\Packet; use pocketmine\network\mcpe\protocol\PacketPool; use pocketmine\network\mcpe\protocol\PlayStatusPacket; +use pocketmine\network\mcpe\protocol\ServerboundPacket; use pocketmine\network\mcpe\protocol\ServerToClientHandshakePacket; use pocketmine\network\NetworkInterface; use pocketmine\Player; @@ -214,6 +216,10 @@ class NetworkSession{ * @throws BadPacketException */ public function handleDataPacket(Packet $packet) : void{ + if(!($packet instanceof ServerboundPacket)){ + throw new BadPacketException("Unexpected non-serverbound packet " . $packet->getName()); + } + $timings = Timings::getReceiveDataPacketTimings($packet); $timings->startTiming(); @@ -237,7 +243,7 @@ class NetworkSession{ $timings->stopTiming(); } - public function sendDataPacket(Packet $packet, bool $immediate = false) : bool{ + public function sendDataPacket(ClientboundPacket $packet, bool $immediate = false) : bool{ $timings = Timings::getSendDataPacketTimings($packet); $timings->startTiming(); try{ @@ -260,9 +266,9 @@ class NetworkSession{ /** * @internal - * @param Packet $packet + * @param ClientboundPacket $packet */ - public function addToSendBuffer(Packet $packet) : void{ + public function addToSendBuffer(ClientboundPacket $packet) : void{ $timings = Timings::getSendDataPacketTimings($packet); $timings->startTiming(); try{ diff --git a/src/pocketmine/network/mcpe/protocol/AddBehaviorTreePacket.php b/src/pocketmine/network/mcpe/protocol/AddBehaviorTreePacket.php index 8472b1b45..863880bef 100644 --- a/src/pocketmine/network/mcpe/protocol/AddBehaviorTreePacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddBehaviorTreePacket.php @@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class AddBehaviorTreePacket extends DataPacket{ +class AddBehaviorTreePacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::ADD_BEHAVIOR_TREE_PACKET; /** @var string */ diff --git a/src/pocketmine/network/mcpe/protocol/AddEntityPacket.php b/src/pocketmine/network/mcpe/protocol/AddEntityPacket.php index 6a417a587..56b95fcb2 100644 --- a/src/pocketmine/network/mcpe/protocol/AddEntityPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddEntityPacket.php @@ -34,7 +34,7 @@ use pocketmine\network\mcpe\protocol\types\EntityLink; use function array_search; use function count; -class AddEntityPacket extends DataPacket{ +class AddEntityPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::ADD_ENTITY_PACKET; /* diff --git a/src/pocketmine/network/mcpe/protocol/AddHangingEntityPacket.php b/src/pocketmine/network/mcpe/protocol/AddHangingEntityPacket.php index 032de9f55..07f575ace 100644 --- a/src/pocketmine/network/mcpe/protocol/AddHangingEntityPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddHangingEntityPacket.php @@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class AddHangingEntityPacket extends DataPacket{ +class AddHangingEntityPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::ADD_HANGING_ENTITY_PACKET; /** @var int|null */ diff --git a/src/pocketmine/network/mcpe/protocol/AddItemEntityPacket.php b/src/pocketmine/network/mcpe/protocol/AddItemEntityPacket.php index ff1a32dbd..9ee9a2d10 100644 --- a/src/pocketmine/network/mcpe/protocol/AddItemEntityPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddItemEntityPacket.php @@ -29,7 +29,7 @@ use pocketmine\item\Item; use pocketmine\math\Vector3; use pocketmine\network\mcpe\handler\SessionHandler; -class AddItemEntityPacket extends DataPacket{ +class AddItemEntityPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::ADD_ITEM_ENTITY_PACKET; /** @var int|null */ diff --git a/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php b/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php index cb80125c7..693009353 100644 --- a/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AddPlayerPacket.php @@ -32,7 +32,7 @@ use pocketmine\network\mcpe\protocol\types\EntityLink; use pocketmine\utils\UUID; use function count; -class AddPlayerPacket extends DataPacket{ +class AddPlayerPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::ADD_PLAYER_PACKET; /** @var UUID */ diff --git a/src/pocketmine/network/mcpe/protocol/AdventureSettingsPacket.php b/src/pocketmine/network/mcpe/protocol/AdventureSettingsPacket.php index b98739fde..43eaa4e9f 100644 --- a/src/pocketmine/network/mcpe/protocol/AdventureSettingsPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AdventureSettingsPacket.php @@ -29,7 +29,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; use pocketmine\network\mcpe\protocol\types\PlayerPermissions; -class AdventureSettingsPacket extends DataPacket{ +class AdventureSettingsPacket extends DataPacket implements ClientboundPacket, ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::ADVENTURE_SETTINGS_PACKET; public const PERMISSION_NORMAL = 0; diff --git a/src/pocketmine/network/mcpe/protocol/AnimatePacket.php b/src/pocketmine/network/mcpe/protocol/AnimatePacket.php index 22ec0ccd0..49f9c59bc 100644 --- a/src/pocketmine/network/mcpe/protocol/AnimatePacket.php +++ b/src/pocketmine/network/mcpe/protocol/AnimatePacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class AnimatePacket extends DataPacket{ +class AnimatePacket extends DataPacket implements ClientboundPacket, ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::ANIMATE_PACKET; public const ACTION_SWING_ARM = 1; diff --git a/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php b/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php index e2458df49..c67601e2f 100644 --- a/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AvailableCommandsPacket.php @@ -39,7 +39,7 @@ use function array_values; use function count; use function dechex; -class AvailableCommandsPacket extends DataPacket{ +class AvailableCommandsPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::AVAILABLE_COMMANDS_PACKET; diff --git a/src/pocketmine/network/mcpe/protocol/AvailableEntityIdentifiersPacket.php b/src/pocketmine/network/mcpe/protocol/AvailableEntityIdentifiersPacket.php index 194094f25..e5ba51e19 100644 --- a/src/pocketmine/network/mcpe/protocol/AvailableEntityIdentifiersPacket.php +++ b/src/pocketmine/network/mcpe/protocol/AvailableEntityIdentifiersPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; use function base64_decode; -class AvailableEntityIdentifiersPacket extends DataPacket{ +class AvailableEntityIdentifiersPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::AVAILABLE_ENTITY_IDENTIFIERS_PACKET; /** diff --git a/src/pocketmine/network/mcpe/protocol/BiomeDefinitionListPacket.php b/src/pocketmine/network/mcpe/protocol/BiomeDefinitionListPacket.php index e518a148f..018afab65 100644 --- a/src/pocketmine/network/mcpe/protocol/BiomeDefinitionListPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BiomeDefinitionListPacket.php @@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class BiomeDefinitionListPacket extends DataPacket{ +class BiomeDefinitionListPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::BIOME_DEFINITION_LIST_PACKET; /** @var string */ diff --git a/src/pocketmine/network/mcpe/protocol/BlockEntityDataPacket.php b/src/pocketmine/network/mcpe/protocol/BlockEntityDataPacket.php index 6e06e38b2..663c24227 100644 --- a/src/pocketmine/network/mcpe/protocol/BlockEntityDataPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BlockEntityDataPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class BlockEntityDataPacket extends DataPacket{ +class BlockEntityDataPacket extends DataPacket implements ClientboundPacket, ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::BLOCK_ENTITY_DATA_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/BlockEventPacket.php b/src/pocketmine/network/mcpe/protocol/BlockEventPacket.php index 462e4d9e5..755b971e2 100644 --- a/src/pocketmine/network/mcpe/protocol/BlockEventPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BlockEventPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class BlockEventPacket extends DataPacket{ +class BlockEventPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::BLOCK_EVENT_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/BlockPickRequestPacket.php b/src/pocketmine/network/mcpe/protocol/BlockPickRequestPacket.php index 1bc27cef1..8bd44a725 100644 --- a/src/pocketmine/network/mcpe/protocol/BlockPickRequestPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BlockPickRequestPacket.php @@ -29,7 +29,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class BlockPickRequestPacket extends DataPacket{ +class BlockPickRequestPacket extends DataPacket implements ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::BLOCK_PICK_REQUEST_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/BookEditPacket.php b/src/pocketmine/network/mcpe/protocol/BookEditPacket.php index f1b0a0851..38eed556a 100644 --- a/src/pocketmine/network/mcpe/protocol/BookEditPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BookEditPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\BadPacketException; use pocketmine\network\mcpe\handler\SessionHandler; -class BookEditPacket extends DataPacket{ +class BookEditPacket extends DataPacket implements ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::BOOK_EDIT_PACKET; public const TYPE_REPLACE_PAGE = 0; diff --git a/src/pocketmine/network/mcpe/protocol/BossEventPacket.php b/src/pocketmine/network/mcpe/protocol/BossEventPacket.php index 89a9be354..4a3c50eab 100644 --- a/src/pocketmine/network/mcpe/protocol/BossEventPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BossEventPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class BossEventPacket extends DataPacket{ +class BossEventPacket extends DataPacket implements ClientboundPacket, ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::BOSS_EVENT_PACKET; /* S2C: Shows the boss-bar to the player. */ diff --git a/src/pocketmine/network/mcpe/protocol/CameraPacket.php b/src/pocketmine/network/mcpe/protocol/CameraPacket.php index 6e211d516..ddca6dd15 100644 --- a/src/pocketmine/network/mcpe/protocol/CameraPacket.php +++ b/src/pocketmine/network/mcpe/protocol/CameraPacket.php @@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class CameraPacket extends DataPacket{ +class CameraPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::CAMERA_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/ChangeDimensionPacket.php b/src/pocketmine/network/mcpe/protocol/ChangeDimensionPacket.php index 90f487000..6e13a7296 100644 --- a/src/pocketmine/network/mcpe/protocol/ChangeDimensionPacket.php +++ b/src/pocketmine/network/mcpe/protocol/ChangeDimensionPacket.php @@ -29,7 +29,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\math\Vector3; use pocketmine\network\mcpe\handler\SessionHandler; -class ChangeDimensionPacket extends DataPacket{ +class ChangeDimensionPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::CHANGE_DIMENSION_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/ChunkRadiusUpdatedPacket.php b/src/pocketmine/network/mcpe/protocol/ChunkRadiusUpdatedPacket.php index cf6ec6ef8..7fe8c056b 100644 --- a/src/pocketmine/network/mcpe/protocol/ChunkRadiusUpdatedPacket.php +++ b/src/pocketmine/network/mcpe/protocol/ChunkRadiusUpdatedPacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class ChunkRadiusUpdatedPacket extends DataPacket{ +class ChunkRadiusUpdatedPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::CHUNK_RADIUS_UPDATED_PACKET; /** @var int */ diff --git a/src/pocketmine/network/mcpe/protocol/ClientToServerHandshakePacket.php b/src/pocketmine/network/mcpe/protocol/ClientToServerHandshakePacket.php index 0e42af7bb..e744ff0ff 100644 --- a/src/pocketmine/network/mcpe/protocol/ClientToServerHandshakePacket.php +++ b/src/pocketmine/network/mcpe/protocol/ClientToServerHandshakePacket.php @@ -28,7 +28,7 @@ namespace pocketmine\network\mcpe\protocol; use pocketmine\network\mcpe\handler\SessionHandler; -class ClientToServerHandshakePacket extends DataPacket{ +class ClientToServerHandshakePacket extends DataPacket implements ServerboundPacket{ public const NETWORK_ID = ProtocolInfo::CLIENT_TO_SERVER_HANDSHAKE_PACKET; public function canBeSentBeforeLogin() : bool{ diff --git a/src/pocketmine/network/mcpe/protocol/ClientboundMapItemDataPacket.php b/src/pocketmine/network/mcpe/protocol/ClientboundMapItemDataPacket.php index c068b50ef..6c716ffaa 100644 --- a/src/pocketmine/network/mcpe/protocol/ClientboundMapItemDataPacket.php +++ b/src/pocketmine/network/mcpe/protocol/ClientboundMapItemDataPacket.php @@ -35,7 +35,7 @@ use pocketmine\utils\Color; use function assert; use function count; -class ClientboundMapItemDataPacket extends DataPacket{ +class ClientboundMapItemDataPacket extends DataPacket implements ClientboundPacket{ public const NETWORK_ID = ProtocolInfo::CLIENTBOUND_MAP_ITEM_DATA_PACKET; public const BITFLAG_TEXTURE_UPDATE = 0x02; diff --git a/src/pocketmine/network/mcpe/protocol/ClientboundPacket.php b/src/pocketmine/network/mcpe/protocol/ClientboundPacket.php new file mode 100644 index 000000000..edd22bf0e --- /dev/null +++ b/src/pocketmine/network/mcpe/protocol/ClientboundPacket.php @@ -0,0 +1,28 @@ +pid(); if(!isset(self::$packetReceiveTimingMap[$pid])){ $pkName = (new \ReflectionClass($pk))->getShortName(); @@ -228,11 +229,11 @@ abstract class Timings{ /** - * @param Packet $pk + * @param ClientboundPacket $pk * * @return TimingsHandler */ - public static function getSendDataPacketTimings(Packet $pk) : TimingsHandler{ + public static function getSendDataPacketTimings(ClientboundPacket $pk) : TimingsHandler{ $pid = $pk->pid(); if(!isset(self::$packetSendTimingMap[$pid])){ $pkName = (new \ReflectionClass($pk))->getShortName();