mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 17:29:44 +00:00
Throw exception when RakLib crashes
This commit is contained in:
parent
e8e7938490
commit
9fac990b19
@ -89,7 +89,12 @@ class RakLibInterface implements ServerInstance, SourceInterface{
|
|||||||
/** @var \SplFixedArray */
|
/** @var \SplFixedArray */
|
||||||
private $packetPool;
|
private $packetPool;
|
||||||
|
|
||||||
|
/** @var Server */
|
||||||
private $server;
|
private $server;
|
||||||
|
|
||||||
|
/** @var RakLibServer */
|
||||||
|
private $rakLib;
|
||||||
|
|
||||||
/** @var Player[] */
|
/** @var Player[] */
|
||||||
private $players = [];
|
private $players = [];
|
||||||
|
|
||||||
@ -118,13 +123,19 @@ class RakLibInterface implements ServerInstance, SourceInterface{
|
|||||||
$this->internalThreaded = new \Threaded();
|
$this->internalThreaded = new \Threaded();
|
||||||
$this->externalThreaded = new \Threaded();
|
$this->externalThreaded = new \Threaded();
|
||||||
|
|
||||||
$server = new RakLibServer($this->internalThreaded, $this->externalThreaded, $this->server->getLogger(), $this->server->getLoader(), $this->server->getPort(), $this->server->getIp() === "" ? "0.0.0.0" : $this->server->getIp());
|
$this->rakLib = new RakLibServer($this->internalThreaded, $this->externalThreaded, $this->server->getLogger(), $this->server->getLoader(), $this->server->getPort(), $this->server->getIp() === "" ? "0.0.0.0" : $this->server->getIp());
|
||||||
$this->interface = new ServerHandler($server, $this);
|
$this->interface = new ServerHandler($this->rakLib, $this);
|
||||||
$this->setName($this->server->getMotd());
|
$this->setName($this->server->getMotd());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function doTick(){
|
public function doTick(){
|
||||||
$this->interface->sendTick();
|
if(!$this->rakLib->isTerminated()){
|
||||||
|
$this->interface->sendTick();
|
||||||
|
}else{
|
||||||
|
$info = $this->rakLib->getTerminationInfo();
|
||||||
|
$this->server->removeInterface($this);
|
||||||
|
\ExceptionHandler::handler(E_ERROR, "RakLib Thread crashed [".$info["scope"]."]" . (isset($info["message"]) ? $info["message"] : ""), $info["file"], $info["line"]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function process(){
|
public function process(){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user