mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +00:00
Network: cut this catch-all bullshit out as well
If a network interface crashes, it should take out the whole server, not try to keep on ticking.
This commit is contained in:
parent
8752e363c9
commit
75a0627bf2
@ -26,7 +26,6 @@ declare(strict_types=1);
|
|||||||
*/
|
*/
|
||||||
namespace pocketmine\network;
|
namespace pocketmine\network;
|
||||||
|
|
||||||
use pocketmine\event\server\NetworkInterfaceCrashEvent;
|
|
||||||
use pocketmine\event\server\NetworkInterfaceRegisterEvent;
|
use pocketmine\event\server\NetworkInterfaceRegisterEvent;
|
||||||
use pocketmine\event\server\NetworkInterfaceUnregisterEvent;
|
use pocketmine\event\server\NetworkInterfaceUnregisterEvent;
|
||||||
use pocketmine\network\mcpe\protocol\PacketPool;
|
use pocketmine\network\mcpe\protocol\PacketPool;
|
||||||
@ -90,18 +89,7 @@ class Network{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function processInterface(SourceInterface $interface) : void{
|
public function processInterface(SourceInterface $interface) : void{
|
||||||
try{
|
|
||||||
$interface->process();
|
$interface->process();
|
||||||
}catch(\Throwable $e){
|
|
||||||
$logger = $this->server->getLogger();
|
|
||||||
$logger->logException($e);
|
|
||||||
|
|
||||||
(new NetworkInterfaceCrashEvent($interface, $e))->call();
|
|
||||||
|
|
||||||
$interface->emergencyShutdown();
|
|
||||||
$this->unregisterInterface($interface);
|
|
||||||
$logger->critical($this->server->getLanguage()->translateString("pocketmine.server.networkError", [get_class($interface), $e->getMessage()]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user