Changed how exceptions work and are logged, throw proper exceptions on tasks

This commit is contained in:
Shoghi Cervantes
2015-09-18 12:03:24 +02:00
parent 472fcfa4c7
commit 0bcf639a98
15 changed files with 52 additions and 78 deletions

View File

@ -2566,9 +2566,7 @@ class Level implements ChunkManager, Metadatable{
}catch(\Throwable $e){
$logger = $this->server->getLogger();
$logger->error($this->server->getLanguage()->translateString("pocketmine.level.chunkUnloadError", [$e->getMessage()]));
if($logger instanceof MainLogger){
$logger->logException($e);
}
$logger->logException($e);
}
unset($this->chunks[$index]);

View File

@ -39,7 +39,7 @@ class GeneratorRegisterTask extends AsyncTask{
public function __construct(Level $level, Generator $generator){
$this->generator = get_class($generator);
$this->settings = $generator->getSettings();
$this->settings = serialize($generator->getSettings());
$this->seed = $level->getSeed();
$this->levelId = $level->getId();
}
@ -51,7 +51,7 @@ class GeneratorRegisterTask extends AsyncTask{
$this->saveToThreadStore("generation.level{$this->levelId}.manager", $manager);
/** @var Generator $generator */
$generator = $this->generator;
$generator = new $generator($this->settings);
$generator = new $generator(unserialize($this->settings));
$generator->init($manager, new Random($manager->getSeed()));
$this->saveToThreadStore("generation.level{$this->levelId}.generator", $generator);
}