diff --git a/src/Server.php b/src/Server.php index fe5e3ad97..f70a77485 100644 --- a/src/Server.php +++ b/src/Server.php @@ -38,7 +38,7 @@ use pocketmine\entity\EntityFactory; use pocketmine\event\HandlerListManager; use pocketmine\event\player\PlayerDataSaveEvent; use pocketmine\event\server\CommandEvent; -use pocketmine\event\server\DataPacketBroadcastEvent; +use pocketmine\event\server\DataPacketSendEvent; use pocketmine\event\server\QueryRegenerateEvent; use pocketmine\inventory\CreativeInventory; use pocketmine\item\enchantment\Enchantment; @@ -1453,7 +1453,7 @@ class Server{ return false; } - $ev = new DataPacketBroadcastEvent($recipients, $packets); + $ev = new DataPacketSendEvent($recipients, $packets); $ev->call(); if($ev->isCancelled()){ return false; diff --git a/src/event/server/DataPacketBroadcastEvent.php b/src/event/server/DataPacketBroadcastEvent.php deleted file mode 100644 index 46bb4ea57..000000000 --- a/src/event/server/DataPacketBroadcastEvent.php +++ /dev/null @@ -1,78 +0,0 @@ -targets = $targets; - $this->packets = $packets; - } - - /** - * @return NetworkSession[] - */ - public function getTargets() : array{ - return $this->targets; - } - - /** - * @param NetworkSession[] $targets - */ - public function setTargets(array $targets) : void{ - $this->targets = $targets; - } - - /** - * @return ClientboundPacket[] - */ - public function getPackets() : array{ - return $this->packets; - } - - /** - * @param ClientboundPacket[] $packets - */ - public function setPackets(array $packets) : void{ - $this->packets = $packets; - } -} diff --git a/src/event/server/DataPacketSendEvent.php b/src/event/server/DataPacketSendEvent.php index 6de229482..aea7b9800 100644 --- a/src/event/server/DataPacketSendEvent.php +++ b/src/event/server/DataPacketSendEvent.php @@ -28,34 +28,51 @@ use pocketmine\event\CancellableTrait; use pocketmine\network\mcpe\NetworkSession; use pocketmine\network\mcpe\protocol\ClientboundPacket; +/** + * Called when packets are sent to network sessions. + */ class DataPacketSendEvent extends ServerEvent implements Cancellable{ use CancellableTrait; - /** @var ClientboundPacket */ - private $packet; - /** @var NetworkSession */ - private $target; + /** @var NetworkSession[] */ + private $targets; + /** @var ClientboundPacket[] */ + private $packets; /** - * @param NetworkSession $target - * @param ClientboundPacket $packet + * @param NetworkSession[] $targets + * @param ClientboundPacket[] $packets */ - public function __construct(NetworkSession $target, ClientboundPacket $packet){ - $this->packet = $packet; - $this->target = $target; + public function __construct(array $targets, array $packets){ + $this->targets = $targets; + $this->packets = $packets; } /** - * @return ClientboundPacket + * @return NetworkSession[] */ - public function getPacket() : ClientboundPacket{ - return $this->packet; + public function getTargets() : array{ + return $this->targets; } /** - * @return NetworkSession + * @param NetworkSession[] $targets */ - public function getTarget() : NetworkSession{ - return $this->target; + public function setTargets(array $targets) : void{ + $this->targets = $targets; + } + + /** + * @return ClientboundPacket[] + */ + public function getPackets() : array{ + return $this->packets; + } + + /** + * @param ClientboundPacket[] $packets + */ + public function setPackets(array $packets) : void{ + $this->packets = $packets; } } diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 1c1e05155..7d94ffe76 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -28,8 +28,8 @@ use pocketmine\entity\effect\EffectInstance; use pocketmine\entity\Human; use pocketmine\entity\Living; use pocketmine\event\player\PlayerCreationEvent; -use pocketmine\event\server\DataPacketReceiveEvent; use pocketmine\event\server\DataPacketSendEvent; +use pocketmine\event\server\DataPacketReceiveEvent; use pocketmine\form\Form; use pocketmine\math\Vector3; use pocketmine\network\BadPacketException; @@ -363,7 +363,7 @@ class NetworkSession{ $timings = Timings::getSendDataPacketTimings($packet); $timings->startTiming(); try{ - $ev = new DataPacketSendEvent($this, $packet); + $ev = new DataPacketSendEvent([$this], [$packet]); $ev->call(); if($ev->isCancelled()){ return false;