22declare(strict_types=1);
29use
function spl_object_id;
34 private array $sessions = [];
37 private array $pendingLoginSessions = [];
43 $idx = spl_object_id($session);
44 $this->sessions[$idx] = $session;
45 $this->pendingLoginSessions[$idx] = $session;
53 $idx = spl_object_id($session);
54 unset($this->pendingLoginSessions[$idx]);
62 $idx = spl_object_id($session);
63 unset($this->sessions[$idx]);
64 unset($this->pendingLoginSessions[$idx]);
71 return count($this->sessions);
79 return count($this->sessions) - count($this->pendingLoginSessions);
83 public function getSessions() : array{ return $this->sessions; }
88 public function tick() : void{
89 foreach($this->sessions as $k => $session){
91 if(!$session->isConnected()){
92 unset($this->sessions[$k]);
104 foreach($this->sessions as $session){
105 $session->disconnect($reason, $disconnectScreenMessage);
107 $this->sessions = [];
close(Translatable|string $reason="", Translatable|string|null $disconnectScreenMessage=null)
markLoginReceived(NetworkSession $session)
add(NetworkSession $session)