Start() private méthode

private Start ( ) : IEnumerator
Résultat IEnumerator
        /// <summary>
        /// This class should be created and passed into Application.Run( ... )
        /// </summary>
        /// <param name="options"> </param>
        public GwupeClientAppContext(List <GwupeOption> options)
        {
            CurrentAppContext = this;
            Options           = options;
            XmlConfigurator.Configure(Assembly.GetExecutingAssembly().GetManifestResourceStream("Gwupe.Agent.log4net.xml"));
            StartupVersion = Regex.Replace(FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion, "\\.[0-9]+$", "");
            Logger.Info("Gwupe" + Program.BuildMarker + ".Agent Starting up [" + StartupVersion + "]");
#if DEBUG
            foreach (var manifestResourceName in Assembly.GetExecutingAssembly().GetManifestResourceNames())
            {
                Logger.Debug("Embedded Resource : " + manifestResourceName);
            }
#endif
            GwupeServiceProxy   = new GwupeServiceProxy();
            ConnectionManager   = new ConnectionManager();
            LoginManager        = new LoginManager();
            P2PManager          = new P2PManager();
            RosterManager       = new RosterManager();
            EngagementManager   = new EngagementManager();
            NotificationManager = new NotificationManager();
            SearchManager       = new SearchManager();
            CurrentUserManager  = new CurrentUserManager();
            TeamManager         = new TeamManager();
            SettingsManager     = new SettingsManager();
            UIManager           = new UIManager();
            _requestManager     = new RequestManager();
            ScheduleManager     = new ScheduleManager();
            ScheduleManager.AddTask(new CheckUpgradeTask(this)
            {
                PeriodSeconds = 120
            });
            ScheduleManager.AddTask(new CheckServiceTask(this)
            {
                PeriodSeconds = 120
            });
            ScheduleManager.AddTask(new DetectIdleTask(this));
            RepeaterManager     = new RepeaterManager();
            RelationshipManager = new RelationshipManager();
            PartyManager        = new PartyManager();
            SetupChangeLog();
            // Start all the Active Managers
            UIManager.Start();
            ScheduleManager.Start();
            ConnectionManager.Start();
            LoginManager.Start();
            // Set correct last version
            Reg.LastVersion = StartupVersion;
        }
Exemple #2
0
        public void StartRole(SOEServer server)
        {
            // Set our server
            Server = server;

            // Get a logger
            Log = Server.Logger.GetLogger("Gateway");
            Log.Info("Constructing gateway...");

            // Construct our global managers
            AccountManager.Start(server);

            // Construct our managers
            CommandManager.Start();
            ClientLogManager.Start();
            LoginManager.Start();

            // Finish!
            Log.Info("Finished constructing gateway!");
        }
 private void VerifyOnBackground(object sender, RoutedEventArgs e)
 {
     //MainSnackbar.MessageQueue.Enqueue("抱歉, 我们暂时禁用了这个功能.");
     LoginManager.Start();
 }
Exemple #4
0
        private async void StartButton_OnClick(object sender, RoutedEventArgs e)
        {
            EnsureUpdatePathExists();
            //await UpdateUpdatePathAsync(); 其他服务器的兼容
            //foreach (Window currentWindow in Application.Current.Windows) 更好的方案
            //    currentWindow.Flyout();

            if (Config.Instance.PlayerAccount.Login() == LoginStatus.NotFound)
            {
                MainSnackbar.MessageQueue.Enqueue("登录失败.", "查看详情", () => Dispatcher.Invoke(async() =>
                {
                    var chooseDialog = new ChooseDialog("要重新注册吗?",
                                                        "很抱歉, 因为我们的技术删库跑路, 所有的玩家数据库都没了. 按下重新注册来用你当前的账号重新注册.", "重新注册");
                    await DialogHost.Show(chooseDialog, "RootDialog");
                    if (chooseDialog.Result)
                    {
                        Config.Instance.PlayerAccount.Register();
                    }
                }));
                return;
            }
            StartButton.IsEnabled = false;

            if (!Config.Instance.DisableUpdateCheck)
            {
                // 检测更新状态
                if (!CheckUpdate(out var updateStatus))
                {
                    OnLaunchError("更新检测失败");
                    return;
                }

                // 等待更新
                if (updateStatus)
                {
                    var result = await UpdateClientAsync();

                    if (!result)
                    {
                        OnLaunchError("更新失败.");
                        return;
                    }
                }
            }

            BeginCrashReportDetector();
            KMCCCBugFix();

            // 启动游戏
            var gameManager = new GameManager();
            var lpm         = new LaunchProgressManager();

            gameManager.OnGameExit += (handle, i) =>
            {
                async Task Callback()
                {
                    LoginManager.Stop();
                    this.Show();
                    lpm.Close();
                    await CheckCrashAsync();
                }

                Dispatcher.Invoke(Callback);
            };

            gameManager.OnGameLog += (lh, log) => lpm.OnGameLog(log);
            // 游戏状态
            var lh1 = gameManager.Run();

            if (!lh1.Success)
            {
                MessageUploadManager.CrashReport(
                    new UploadData($"游戏启动时异常: {lh1.ErrorMessage} {lh1.Exception?.SerializeException()}"));
                OnLaunchError($"游戏启动时异常: {lh1.ErrorMessage}");
                return;
            }

            if (Config.Instance.LaunchProgress)
            {
                lpm.Begin(lh1.Handle);
            }
            LoginManager.Start();

            // 退出
            StartButton.IsEnabled = true;
            Hide();
        }