private async void btnDownloadVer_Click(object sender, RoutedEventArgs e) { if (listRemoteVer.SelectedItem == null) { MessageBox.Show(LangManager.GetLangFromResource("RemoteVerErrorNoVersionSelect")); return; } var selectVer = listRemoteVer.SelectedItem as DataRowView; if (selectVer == null) { return; } var url = selectVer[3] as string; var versionDownloader = new Version(url); _prs = new FrmPrs(LangManager.GetLangFromResource("btnDownloadVer")); _prs.Show(); versionDownloader.ProcessChange += status => _prs.ChangeStatus(LangManager.GetLangFromResource(status)); await versionDownloader.Start(); Logger.Log("下载客户端文件成功"); MessageBox.Show(LangManager.GetLangFromResource("RemoteVerDownloadSuccess")); btnDownloadVer.Content = LangManager.GetLangFromResource("btnDownloadVer"); btnDownloadVer.IsEnabled = true; BmclCore.MainWindow.GridGame.ReFlushlistver(); BmclCore.MainWindow.SwitchDownloadGrid(Visibility.Hidden); BmclCore.MainWindow.TabMain.SelectedIndex = 0; _prs.Close(); _prs = null; }
private void btnStart_Click(object sender, RoutedEventArgs e) { if (BmclCore.GameRunning) { MessageBox.Show(this, "同时只能运行一个客户端", "运行冲突", MessageBoxButton.OK, MessageBoxImage.Stop); return; } BmclCore.GameRunning = true; if (GridConfig.txtUserName.Text == "!!!") { MessageBox.Show(this, "请先修改用户名"); TabMain.SelectedIndex = 1; GridConfig.txtUserName.Focus(); return; } _clientCrashReportCount = Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\.minecraft\crash-reports") ? Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\.minecraft\crash-reports").Count() : 0; _starter = new FrmPrs("正在准备游戏环境及启动游戏"); Logger.info(string.Format("正在启动{0},使用的登陆方式为{1}", GridGame.listVer.SelectedItem, GridConfig.listAuth.SelectedItem)); _starter.ShowInTaskbar = false; _starter.Show(); _starter.Activate(); _starter.Focus(); _starter.ChangeEventH("正在登陆"); var loginThread = new LoginThread(GridConfig.txtUserName.Text, GridConfig.txtPwd.Password, GridConfig.listAuth.SelectedItem.ToString(), GridConfig.listAuth.SelectedIndex); loginThread.LoginFinishEvent += LoginThreadOnLoginFinishEvent; loginThread.Start(); }
private async void DownloadForge(string ver) { var frmPrs = new FrmPrs(LangManager.GetLangFromResource("DownloadingForge")); void OnProgressChange(string status) => frmPrs.ChangeStatus(LangManager.GetLangFromResource(status)); try { var forgeVersion = _forgeVersions.First(version => version.name == ver); _forgeTask.ProcessChange += OnProgressChange; frmPrs.Show(); await _forgeTask.DownloadForge(forgeVersion); } catch (InvalidOperationException exception) { Logger.Fatal(exception); MessageBox.Show(BmclCore.MainWindow, LangManager.Translate("ForgeNoSuchVersion", ver), BmclCore.MainWindow.Title, MessageBoxButton.OK, MessageBoxImage.Error); } finally { _forgeTask.ProcessChange -= OnProgressChange; frmPrs.Close(); } BmclCore.MainWindow.GridGame.ReFlushlistver(); BmclCore.MainWindow.TabMain.SelectedIndex = 0; }
private void btnImportOldMc_Click(object sender, RoutedEventArgs e) { var folderImportOldVer = new System.Windows.Forms.FolderBrowserDialog { Description = LangManager.GetLangFromResource("ImportDirInfo") }; var prs = new FrmPrs(LangManager.GetLangFromResource("ImportPrsTitle")); prs.Show(); if (folderImportOldVer.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string importFrom = folderImportOldVer.SelectedPath; if (!File.Exists(importFrom + "\\bin\\minecraft.jar")) { MessageBox.Show(LangManager.GetLangFromResource("ImportFailedNoMinecraftFound")); return; } bool f1, f2; string importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportOldMcInfo"), "OldMinecraft"); do { f1 = false; f2 = false; if (importName.Length <= 0 || importName.IndexOf('.') != -1) { importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportInvildName"), "OldMinecraft"); } else { f1 = true; } if (Directory.Exists(".minecraft\\versions\\" + importName)) { importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportFailedExist"), "OldMinecraft"); } else { f2 = true; } } while (!(f1 && f2)); VersionHelper.ImportOldMc(importName, importFrom, new Action(() => { prs.Close(); MessageBox.Show(BmclCore.MainWindow, LangManager.GetLangFromResource("ImportOldMCInfo")); } )); } else { prs.Close(); } }
private void btnImportOldMc_Click(object sender, RoutedEventArgs e) { var folderImportOldVer = new System.Windows.Forms.FolderBrowserDialog { Description = LangManager.GetLangFromResource("ImportDirInfo") }; var prs = new FrmPrs(LangManager.GetLangFromResource("ImportPrsTitle")); prs.Show(); if (folderImportOldVer.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string importFrom = folderImportOldVer.SelectedPath; if (!File.Exists(importFrom + "\\bin\\minecraft.jar")) { MessageBox.Show(LangManager.GetLangFromResource("ImportFailedNoMinecraftFound")); return; } bool f1, f2; string importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportOldMcInfo"), "OldMinecraft"); do { f1 = false; f2 = false; if (importName.Length <= 0 || importName.IndexOf('.') != -1) importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportInvildName"), "OldMinecraft"); else f1 = true; if (Directory.Exists(".minecraft\\versions\\" + importName)) importName = Microsoft.VisualBasic.Interaction.InputBox(LangManager.GetLangFromResource("ImportNameInfo"), LangManager.GetLangFromResource("ImportFailedExist"), "OldMinecraft"); else f2 = true; } while (!(f1 && f2)); VersionHelper.ImportOldMc(importName, importFrom, new Action(() => { prs.Close(); MessageBox.Show(BmclCore.MainWindow, LangManager.GetLangFromResource("ImportOldMCInfo")); } )); } else prs.Close(); }
private async void btnStart_Click(object sender, RoutedEventArgs e) { //TODO 分离launcher方法 if (GridConfig.txtUserName.Text == "!!!") { MessageBox.Show(this, "请先修改用户名"); TabMain.SelectedIndex = 1; GridConfig.txtUserName.Focus(); return; } GridConfig.SaveConfig(); var somethingBad = false; try { var selectedVersion = GridGame.GetSelectedVersion(); Logger.Info($"正在启动{selectedVersion},使用的登陆方式为{GridConfig.listAuth.SelectedItem}"); _frmPrs = new FrmPrs(LangManager.GetLangFromResource(selectedVersion)); _frmPrs.Show(); _frmPrs.ChangeStatus(LangManager.GetLangFromResource("LauncherAuth")); var launcher = await BmclCore.GameManager.LaunchGame(selectedVersion, false); if (launcher == null) { _frmPrs.Close(); _frmPrs = null; return; } launcher.OnGameLaunch += Launcher_OnGameLaunch; launcher.OnGameStart += Game_GameStartUp; launcher.OnGameExit += launcher_gameexit; await launcher.Start(); } catch (NoSelectGameException exception) { Logger.Fatal(exception); somethingBad = true; MessageBox.Show(this, exception.Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); } catch (NoJavaException exception) { Logger.Fatal(exception); somethingBad = true; MessageBox.Show(this, exception.Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); } catch (AnotherGameRunningException exception) { Logger.Fatal(exception); somethingBad = true; MessageBox.Show(this, exception.Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); } catch (DownloadLibException exception) { Logger.Fatal(exception); somethingBad = true; MessageBox.Show(this, exception.Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); } finally { if (somethingBad) { _frmPrs?.Close(); _frmPrs = null; } } }