mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 17:59:48 +00:00
Async chunk compression and serialization is now non-optional
This commit is contained in:
@ -33,6 +33,7 @@ use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\nbt\tag\IntTag;
|
||||
use pocketmine\nbt\tag\LongTag;
|
||||
use pocketmine\nbt\tag\StringTag;
|
||||
use pocketmine\scheduler\AsyncTask;
|
||||
|
||||
abstract class BaseLevelProvider implements LevelProvider{
|
||||
/** @var Level */
|
||||
@ -41,8 +42,6 @@ abstract class BaseLevelProvider implements LevelProvider{
|
||||
protected $path;
|
||||
/** @var CompoundTag */
|
||||
protected $levelData;
|
||||
/** @var bool */
|
||||
protected $asyncChunkRequest = false;
|
||||
|
||||
public function __construct(Level $level, string $path){
|
||||
$this->level = $level;
|
||||
@ -66,7 +65,6 @@ abstract class BaseLevelProvider implements LevelProvider{
|
||||
if(!isset($this->levelData->generatorOptions)){
|
||||
$this->levelData->generatorOptions = new StringTag("generatorOptions", "");
|
||||
}
|
||||
$this->asyncChunkRequest = (bool) $this->level->getServer()->getProperty("chunk-sending.async-chunk-request", false);
|
||||
}
|
||||
|
||||
public function getPath() : string{
|
||||
@ -131,19 +129,12 @@ abstract class BaseLevelProvider implements LevelProvider{
|
||||
file_put_contents($this->getPath() . "level.dat", $buffer);
|
||||
}
|
||||
|
||||
public function requestChunkTask(int $x, int $z){
|
||||
public function requestChunkTask(int $x, int $z) : AsyncTask{
|
||||
$chunk = $this->getChunk($x, $z, false);
|
||||
if(!($chunk instanceof Chunk)){
|
||||
throw new ChunkException("Invalid Chunk sent");
|
||||
}
|
||||
|
||||
if($this->asyncChunkRequest){
|
||||
return new ChunkRequestTask($this->level, $chunk);
|
||||
}
|
||||
|
||||
//non-async, call the callback directly with serialized data
|
||||
$this->getLevel()->chunkRequestCallback($x, $z, $chunk->networkSerialize());
|
||||
|
||||
return null;
|
||||
return new ChunkRequestTask($this->level, $chunk);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user