private function handlePlayerDisconnection(Connection $connection) { $player = $connection->getPlayer(); $seat = $player->getSeat(); $playerConnection = $this->getPlayerConnection($player); $this->connections = $this->connections->filter(function ($c) use($playerConnection) { return $c !== $playerConnection; }); $this->removePlayerFromSeat($seat, $assignBot = true); if (!$seat->getTable()->onlySeatedByBots() || count($this->tableManager->getTables()) === 1) { // Skip destroying table if this table is the last one standing // Or there's at least one computer bot connected via TCP return; } $this->destroyTable($seat->getTable()); }