From ad70a9e3dcbd2617c9d0c0e4a1aa94887b76fb5a Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 29 Apr 2020 16:27:34 +0100 Subject: [PATCH] NetworkSession: allow provision of a custom list of players to syncPlayerList() --- src/network/mcpe/NetworkSession.php | 7 +++++-- src/network/mcpe/handler/PreSpawnPacketHandler.php | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 7f1a78133..6f4380d4a 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -835,10 +835,13 @@ class NetworkSession{ $this->sendDataPacket(TakeItemActorPacket::create($collector->getId(), $pickedUp->getId())); } - public function syncPlayerList() : void{ + /** + * @param Player[] $players + */ + public function syncPlayerList(array $players) : void{ $this->sendDataPacket(PlayerListPacket::add(array_map(function(Player $player) : PlayerListEntry{ return PlayerListEntry::createAdditionEntry($player->getUniqueId(), $player->getId(), $player->getDisplayName(), SkinAdapterSingleton::get()->toSkinData($player->getSkin()), $player->getXuid()); - }, $this->server->getOnlinePlayers()))); + }, $players))); } public function onPlayerAdded(Player $p) : void{ diff --git a/src/network/mcpe/handler/PreSpawnPacketHandler.php b/src/network/mcpe/handler/PreSpawnPacketHandler.php index 1407c727d..726cdb7de 100644 --- a/src/network/mcpe/handler/PreSpawnPacketHandler.php +++ b/src/network/mcpe/handler/PreSpawnPacketHandler.php @@ -99,7 +99,7 @@ class PreSpawnPacketHandler extends PacketHandler{ $this->session->getInvManager()->syncSelectedHotbarSlot(); $this->session->queueCompressed($this->server->getCraftingManager()->getCraftingDataPacket($this->session->getCompressor())); - $this->session->syncPlayerList(); + $this->session->syncPlayerList($this->server->getOnlinePlayers()); } public function handleRequestChunkRadius(RequestChunkRadiusPacket $packet) : bool{