mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 17:29:44 +00:00
Fixed loader counter on Level, closes #1147
This commit is contained in:
parent
70a7c4c552
commit
0c6d8b9815
@ -326,6 +326,7 @@ class PlayerInventory extends BaseInventory{
|
||||
$pk->eid = $this->getHolder()->getId();
|
||||
$pk->slots = $slots;
|
||||
$pk->encode();
|
||||
$pk->setChannel(Network::CHANNEL_ENTITY_SPAWNING);
|
||||
$pk->isEncoded = true;
|
||||
|
||||
foreach($target as $player){
|
||||
@ -339,7 +340,7 @@ class PlayerInventory extends BaseInventory{
|
||||
$pk2->slots = $armor;
|
||||
$player->dataPacket($pk2);
|
||||
}else{
|
||||
$player->dataPacket($pk->setChannel(Network::CHANNEL_ENTITY_SPAWNING));
|
||||
$player->dataPacket($pk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -160,6 +160,8 @@ class Level implements ChunkManager, Metadatable{
|
||||
|
||||
/** @var ChunkLoader[] */
|
||||
private $loaders = [];
|
||||
/** @var int[] */
|
||||
private $loaderCounter = [];
|
||||
/** @var ChunkLoader[][] */
|
||||
private $chunkLoaders = [];
|
||||
/** @var Player[][] */
|
||||
@ -564,9 +566,10 @@ class Level implements ChunkManager, Metadatable{
|
||||
}
|
||||
|
||||
if(!isset($this->loaders[$hash])){
|
||||
$this->loaders[$hash] = 1;
|
||||
$this->loaderCounter[$hash] = 1;
|
||||
$this->loaders[$hash] = $loader;
|
||||
}else{
|
||||
++$this->loaders[$hash];
|
||||
++$this->loaderCounter[$hash];
|
||||
}
|
||||
|
||||
$this->cancelUnloadChunkRequest($chunkX, $chunkZ);
|
||||
@ -586,7 +589,8 @@ class Level implements ChunkManager, Metadatable{
|
||||
$this->unloadChunkRequest($chunkX, $chunkZ, true);
|
||||
}
|
||||
|
||||
if(--$this->loaders[$hash] === 0){
|
||||
if(--$this->loaderCounter[$hash] === 0){
|
||||
unset($this->loaderCounter[$hash]);
|
||||
unset($this->loaders[$hash]);
|
||||
}
|
||||
}
|
||||
@ -800,7 +804,7 @@ class Level implements ChunkManager, Metadatable{
|
||||
$chunkX = $loader->getX() >> 4;
|
||||
$chunkZ = $loader->getZ() >> 4;
|
||||
|
||||
$index = Level::chunkHash($x, $z);
|
||||
$index = Level::chunkHash($chunkX, $chunkZ);
|
||||
$existingLoaders = max(0, isset($this->chunkTickList[$index]) ? $this->chunkTickList[$index] : 0);
|
||||
$this->chunkTickList[$index] = $existingLoaders + 1;
|
||||
for($chunk = 0; $chunk < $chunksPerLoader; ++$chunk){
|
||||
|
Loading…
x
Reference in New Issue
Block a user