public void HandleDeadPlayers() { var connections = _socketRepository.GetAllConnections(); var timeouts = connections.Where(x => x.TcpClient == null || x.IsTimedOut()).ToList(); foreach (var timeout in timeouts) { Player player = null; var playerId = _socketRepository.GetPlayerId(timeout.Id); if (playerId.HasValue) { player = _playerRepository.GetPlayerById(playerId.Value); } Console.WriteLine($"Connection removed: {timeout.Id} - {timeout.LastMessage}"); _socketRepository.RemoveConnection(timeout.Id); if (player != null) { _locationSender.Update(player.Node); } } }