mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +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[][] */
|
/** @var DataPacket[][] */
|
||||||
private $chunkPackets = [];
|
private $chunkPackets = [];
|
||||||
|
/** @var DataPacket[] */
|
||||||
|
private $globalPackets = [];
|
||||||
|
|
||||||
/** @var float[] */
|
/** @var float[] */
|
||||||
private $unloadQueue = [];
|
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){
|
public function registerChunkLoader(ChunkLoader $loader, int $chunkX, int $chunkZ, bool $autoLoad = true){
|
||||||
$hash = $loader->getLoaderId();
|
$hash = $loader->getLoaderId();
|
||||||
|
|
||||||
@ -807,6 +818,9 @@ class Level implements ChunkManager, Metadatable{
|
|||||||
$this->checkSleep();
|
$this->checkSleep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->server->batchPackets($this->players, $this->globalPackets);
|
||||||
|
$this->globalPackets = [];
|
||||||
|
|
||||||
foreach($this->chunkPackets as $index => $entries){
|
foreach($this->chunkPackets as $index => $entries){
|
||||||
Level::getXZ($index, $chunkX, $chunkZ);
|
Level::getXZ($index, $chunkX, $chunkZ);
|
||||||
$chunkPlayers = $this->getChunkPlayers($chunkX, $chunkZ);
|
$chunkPlayers = $this->getChunkPlayers($chunkX, $chunkZ);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user