Network: add ability to tick sessions

moved responsibility for login timeout checks to NetworkSession instead of Server
This commit is contained in:
Dylan K. Taylor
2018-08-02 17:39:09 +01:00
parent e43496e7e4
commit 10ba3d6359
3 changed files with 42 additions and 9 deletions

View File

@@ -2375,12 +2375,12 @@ class Server{
$p->sendDataPacket($pk);
}
private function checkTickUpdates(int $currentTick, float $tickTime) : void{
foreach($this->players as $p){
if(!$p->loggedIn and ($tickTime - $p->creationTime) >= 10){
$p->close("", "Login timeout");
}elseif($this->alwaysTickPlayers and $p->spawned){
$p->onUpdate($currentTick);
private function checkTickUpdates(int $currentTick) : void{
if($this->alwaysTickPlayers){
foreach($this->players as $p){
if($p->spawned){
$p->onUpdate($currentTick);
}
}
}
@@ -2537,7 +2537,7 @@ class Server{
++$this->tickCounter;
Timings::$connectionTimer->startTiming();
$this->network->tickInterfaces();
$this->network->tick();
Timings::$connectionTimer->stopTiming();
Timings::$schedulerTimer->startTiming();
@@ -2548,7 +2548,7 @@ class Server{
$this->asyncPool->collectTasks();
Timings::$schedulerAsyncTimer->stopTiming();
$this->checkTickUpdates($this->tickCounter, $tickTime);
$this->checkTickUpdates($this->tickCounter);
if(($this->tickCounter % 20) === 0){
if($this->doTitleTick){