Network: clean up ticking handling, RakLib only processes on Snooze notification

This commit is contained in:
Dylan K. Taylor
2018-08-02 17:13:34 +01:00
parent 7560880168
commit e43496e7e4
4 changed files with 18 additions and 23 deletions

View File

@ -80,26 +80,22 @@ class Network{
return $this->interfaces;
}
public function processInterfaces() : void{
public function tickInterfaces() : void{
foreach($this->interfaces as $interface){
$this->processInterface($interface);
}
}
try{
$interface->tick();
}catch(\Exception $e){
$logger = $this->server->getLogger();
if(\pocketmine\DEBUG > 1){
$logger->logException($e);
}
public function processInterface(NetworkInterface $interface) : void{
try{
$interface->process();
}catch(\Throwable $e){
$logger = $this->server->getLogger();
if(\pocketmine\DEBUG > 1){
$logger->logException($e);
$this->server->getPluginManager()->callEvent(new NetworkInterfaceCrashEvent($interface, $e));
$interface->emergencyShutdown();
$this->unregisterInterface($interface);
$logger->critical($this->server->getLanguage()->translateString("pocketmine.server.networkError", [get_class($interface), $e->getMessage()]));
}
$this->server->getPluginManager()->callEvent(new NetworkInterfaceCrashEvent($interface, $e));
$interface->emergencyShutdown();
$this->unregisterInterface($interface);
$logger->critical($this->server->getLanguage()->translateString("pocketmine.server.networkError", [get_class($interface), $e->getMessage()]));
}
}