예제 #1
0
        /// <summary>
        /// Initialize SmartCMServerList with a given server list provider
        /// </summary>
        /// <param name="provider">The ServerListProvider to persist servers</param>
        /// <param name="allowDirectoryFetch">Specifies if we can query SteamDirectory to discover more servers</param>
        public SmartCMServerList( IServerListProvider provider, bool allowDirectoryFetch = true )
        {
            ServerListProvider = provider;
            canFetchDirectory = allowDirectoryFetch;

            servers = new Collection<ServerInfo>();
            listLock = new object();
            BadConnectionMemoryTimeSpan = TimeSpan.FromMinutes( 5 );
        }
예제 #2
0
        /// <summary>
        /// Initialize SmartCMServerList with a given server list provider
        /// </summary>
        /// <param name="provider">The ServerListProvider to persist servers</param>
        /// <param name="allowDirectoryFetch">Specifies if we can query SteamDirectory to discover more servers</param>
        public SmartCMServerList(IServerListProvider provider, bool allowDirectoryFetch = true)
        {
            ServerListProvider = provider;
            canFetchDirectory  = allowDirectoryFetch;

            servers  = new Collection <ServerInfo>();
            listLock = new object();
            BadConnectionMemoryTimeSpan = TimeSpan.FromMinutes(5);
        }
예제 #3
0
        /// <summary>
        /// Borrowed this part from
        /// https://github.com/JustArchi/ArchiSteamFarm
        /// </summary>
        /// <param name="cellId">steam cellid</param>
        /// <param name="serverList">list of cm servers</param>
        private void InitializeCMs(uint cellId, IServerListProvider serverList)
        {
            CMClient.Servers.CellID             = cellId;
            CMClient.Servers.ServerListProvider = serverList;
            Console.WriteLine("Initializing SteamDirectory ...");

            try
            {
                SteamDirectory.Initialize(cellId).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error configuring CM. Connecting might take longer than usual. {ex.Message}");
            }
        }
예제 #4
0
        public ServersViewModel(INavigator navigator, IServerListProvider serverListProvider)
        {
            _navigator          = navigator;
            _serverListProvider = serverListProvider;
            LogoutCommand       = new DelegateCommand(OnLogout);

            Servers = new List <Server>
            {
                new Server {
                    Name = "Alzyras", Distance = "Toli"
                },
                new Server {
                    Name = "Vilnius", Distance = "1"
                },
            };
        }
예제 #5
0
		internal static void InitializeCMs(uint cellID, IServerListProvider serverListProvider) {
			if (serverListProvider == null) {
				Logging.LogNullError(nameof(serverListProvider));
				return;
			}

			CMClient.Servers.CellID = cellID;
			CMClient.Servers.ServerListProvider = serverListProvider;
		}
 public ISteamConfigurationBuilder WithServerListProvider(IServerListProvider provider)
 {
     state.ServerListProvider = provider ?? throw new ArgumentNullException(nameof(provider));
     return(this);
 }
예제 #7
0
        public MainViewModel(
            ILogger logger,
            ISettingsProvider settingsProvider,
            INewsProvider newsProvider,
            IHelpProvider helpProvider,
            IServerListProvider serverListProvider,
            IStatisticsProvider statisticsProvider,
            IServerStatusProvider serverStatusProvider,
            INotificationService notificationService,
            ISelfUpdateService selfUpdateService,
            IGameBackupService gameBackupService,
            IServerHostProvider serverHostProvider,
            ITroubleshootProvider troubleshootProvider,
            IProtocolGameLauncherService protocolGameLauncherService)
        {
            _logger               = logger;
            _settingsProvider     = settingsProvider;
            _newsProvider         = newsProvider;
            _helpProvider         = helpProvider;
            _serverListProvider   = serverListProvider;
            _statisticsProvider   = statisticsProvider;
            _serverStatusProvider = serverStatusProvider;
            _selfUpdateService    = selfUpdateService;
            _serverHostProvider   = serverHostProvider;
            _troubleshootProvider = troubleshootProvider;
            NotificationService   = notificationService;

            LoadTheme(_settingsProvider.GetCurrentSettings().DarkTheme);

            AboutCommand = new RelayCommand(AboutButtonClicked);
            LaunchButtonClickedCommand     = new RelayCommand(LaunchButtonClicked);
            BrowseGameFileCommand          = new RelayCommand(BrowseGameFileClicked);
            BrowseServerFileCommand        = new RelayCommand(BrowseServerFileClicked);
            ApplySettingsCommand           = new RelayCommand(ApplySettingsClicked);
            BrowseResourceDirectoryCommand = new RelayCommand(BrowseResourceDirectoryClicked);
            OpenServerSettingsXmlCommand   = new RelayCommand(EditServerSettingsXmlClicked);
            StartServerCommand             = new RelayCommand(StartServerClicked);
            StopServerCommand            = new RelayCommand(StopServerClicked);
            RestartServerCommand         = new RelayCommand(RestartServerClicked);
            RemoveNotificationCommand    = new RelayCommand <Notification>(RemoveNotificationClicked);
            ServerListTabGotFocusCommand = new RelayCommand <ServerBrowserViewModel>(ServerListTabGotFocus);

            ServerListViewModel = SimpleIoc.Default.GetInstanceWithoutCaching <ServerBrowserViewModel>();

            VerifiedServerListViewModel = SimpleIoc.Default.GetInstanceWithoutCaching <ServerBrowserViewModel>();
            VerifiedServerListViewModel.ServerFilter = s => s.IsVerified;

            FavoriteServerListViewModel = SimpleIoc.Default.GetInstanceWithoutCaching <ServerBrowserViewModel>();
            FavoriteServerListViewModel.ServerFilter = s => s.IsFavorited;

            LocalServerListViewModel = SimpleIoc.Default.GetInstanceWithoutCaching <ServerBrowserViewModel>();
            LocalServerListViewModel.ServerFilter = s => s.LAN;

            RecentServerListViewModel = SimpleIoc.Default.GetInstanceWithoutCaching <ServerBrowserViewModel>();
            RecentServerListViewModel.ServerFilter = s => s.IsRecent;

            _serverListProvider.FavoritedServersUpdated += ServerListProviderOnFavoritedServersUpdated;
            _settingsProvider.SettingsSaved             += SettingsSaved;

            CheckForUpdate();
            GetNews();
            GetTroubleshooting();
            GetHelpItems();
            GetStatistics();
            GetServerStatus();

            if (_settingsProvider.GetCurrentSettings().AskToBackUpGame)
            {
                gameBackupService.CheckBackupStatus();
            }

            protocolGameLauncherService.CheckIfLaunchArgumentExists();
            protocolGameLauncherService.TryVerifyProtocolRegistration();

            EnsureEula();
        }