mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 08:44:01 +00:00
Level: Added global packet broadcast mechanism
This commit is contained in:
parent
6813838754
commit
f0696f77ef
@ -163,6 +163,8 @@ class Level implements ChunkManager, Metadatable{
|
||||
|
||||
/** @var DataPacket[][] */
|
||||
private $chunkPackets = [];
|
||||
/** @var DataPacket[] */
|
||||
private $globalPackets = [];
|
||||
|
||||
/** @var float[] */
|
||||
private $unloadQueue = [];
|
||||
@ -626,6 +628,15 @@ class Level implements ChunkManager, Metadatable{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Queues a DataPacket to be sent to everyone in the Level at the end of the current tick.
|
||||
*
|
||||
* @param DataPacket $packet
|
||||
*/
|
||||
public function addGlobalPacket(DataPacket $packet) : void{
|
||||
$this->globalPackets[] = $packet;
|
||||
}
|
||||
|
||||
public function registerChunkLoader(ChunkLoader $loader, int $chunkX, int $chunkZ, bool $autoLoad = true){
|
||||
$hash = $loader->getLoaderId();
|
||||
|
||||
@ -807,6 +818,9 @@ class Level implements ChunkManager, Metadatable{
|
||||
$this->checkSleep();
|
||||
}
|
||||
|
||||
$this->server->batchPackets($this->players, $this->globalPackets);
|
||||
$this->globalPackets = [];
|
||||
|
||||
foreach($this->chunkPackets as $index => $entries){
|
||||
Level::getXZ($index, $chunkX, $chunkZ);
|
||||
$chunkPlayers = $this->getChunkPlayers($chunkX, $chunkZ);
|
||||
|
Loading…
x
Reference in New Issue
Block a user