mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-08 12:48:32 +00:00
Server: don't catch Throwable for level ticking
this usually causes the console to get spammed with errors. Additionally, in the case where doTick() throws any exception, it's usually because we're in a state we didn't want to be in, so we really should not carry on trying to keep ticking when something breaks here. Instead, this should generate a crashdump.
This commit is contained in:
parent
c447d51e3f
commit
a3b78236eb
@ -2356,7 +2356,7 @@ class Server{
|
|||||||
if($level->getTickRate() > $this->baseTickRate and --$level->tickRateCounter > 0){
|
if($level->getTickRate() > $this->baseTickRate and --$level->tickRateCounter > 0){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try{
|
|
||||||
$levelTime = microtime(true);
|
$levelTime = microtime(true);
|
||||||
$level->doTick($currentTick);
|
$level->doTick($currentTick);
|
||||||
$tickMs = (microtime(true) - $levelTime) * 1000;
|
$tickMs = (microtime(true) - $levelTime) * 1000;
|
||||||
@ -2380,14 +2380,6 @@ class Server{
|
|||||||
$level->tickRateCounter = $level->getTickRate();
|
$level->tickRateCounter = $level->getTickRate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(\Throwable $e){
|
|
||||||
if(!$level->isClosed()){
|
|
||||||
$this->logger->critical($this->getLanguage()->translateString("pocketmine.level.tickError", [$level->getName(), $e->getMessage()]));
|
|
||||||
}else{
|
|
||||||
$this->logger->critical($this->getLanguage()->translateString("pocketmine.level.tickUnloadError", [$level->getName()]));
|
|
||||||
}
|
|
||||||
$this->logger->logException($e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user