diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index 7fecf35ac..d31211328 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -67,6 +67,7 @@ namespace { namespace pocketmine { use pocketmine\utils\Binary; use pocketmine\utils\MainLogger; + use pocketmine\utils\ServerKiller; use pocketmine\utils\Terminal; use pocketmine\utils\Utils; use pocketmine\wizard\Installer; @@ -469,6 +470,10 @@ namespace pocketmine { $thread->quit(); } + $killer = new ServerKiller(); + $killer->start(); + $killer->detach(); + $logger->shutdown(); $logger->join(); diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index a5ddc74ee..aee5ade42 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -2479,6 +2479,10 @@ class Server{ $this->checkTickUpdates($this->tickCounter, $tickTime); + foreach($this->players as $player){ + $player->checkNetwork(); + } + if(($this->tickCounter & 0b1111) === 0){ $this->titleTick(); $this->maxTick = 20; diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index a7f5b50a8..93d14398f 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -662,10 +662,6 @@ class Level implements ChunkManager, Metadatable{ Timings::$tickEntityTimer->stopTiming(); $this->timings->entityTick->stopTiming(); - foreach($this->players as $player){ - $player->checkNetwork(); - } - $this->timings->tileEntityTick->startTiming(); Timings::$tickTileEntityTimer->startTiming(); //Update tiles that need update diff --git a/src/pocketmine/utils/ServerKiller.php b/src/pocketmine/utils/ServerKiller.php new file mode 100644 index 000000000..e3b4d5d47 --- /dev/null +++ b/src/pocketmine/utils/ServerKiller.php @@ -0,0 +1,33 @@ +