private void Btn_Launch_Click(object sender, EventArgs e) { // Launch if (Session == null) { MessageBox.Show("Login First"); return; } if (cbVersion.Text == "") { MessageBox.Show("Select Version"); return; } // disable ui setUIEnabled(false); // create LaunchOption var launchOption = createLaunchOption(); if (launchOption == null) { return; } var version = cbVersion.Text; var useParallel = rbParallelDownload.Checked; var checkHash = cbCheckFileHash.Checked; var downloadAssets = !cbSkipAssetsDownload.Checked; var th = new Thread(() => { try { if (useMJava) // Download Java { var mjava = new MJava(MinecraftPath.Runtime); mjava.ProgressChanged += Launcher_ProgressChanged; var javapath = mjava.CheckJava(); launchOption.JavaPath = javapath; } MVersion versionInfo = Versions.GetVersion(version); // Get Version Info launchOption.StartVersion = versionInfo; MDownloader downloader; // Create Downloader if (useParallel) { downloader = new MParallelDownloader(MinecraftPath, versionInfo, 10, true); } else { downloader = new MDownloader(MinecraftPath, versionInfo); } downloader.ChangeFile += Launcher_FileChanged; downloader.ChangeProgress += Launcher_ProgressChanged; downloader.CheckHash = checkHash; downloader.DownloadAll(downloadAssets); var launch = new MLaunch(launchOption); // Create Arguments and Process var process = launch.GetProcess(); StartProcess(process); // Start Process with debug options // or just start process // process.Start(); } catch (MDownloadFileException mex) // download exception { MessageBox.Show( $"FileName : {mex.ExceptionFile.Name}\n" + $"FilePath : {mex.ExceptionFile.Path}\n" + $"FileUrl : {mex.ExceptionFile.Url}\n" + $"FileType : {mex.ExceptionFile.Type}\n\n" + mex.ToString()); } catch (Win32Exception wex) // java exception { MessageBox.Show(wex.ToString() + "\n\nIt seems your java setting has problem"); } catch (Exception ex) // all exception { MessageBox.Show(ex.ToString()); } finally { Invoke(new Action(() => { // re open log form if (logForm != null) { logForm.Close(); } logForm = new GameLog(); logForm.Show(); // enable ui setUIEnabled(true); })); } }); th.Start(); }
private void refreshVersions(string showVersion) { // Gets Minecraft Versions cbVersion.Items.Clear(); int Out; if (InternetGetConnectedState(out Out, 0) == true) { //if user have internet connections var th = new Thread(new ThreadStart(delegate { Versions = new MVersionLoader().GetVersionMetadatas(MinecraftPath); Invoke(new Action(() => { bool showVersionExist = false; //Snapshot checkbox if (snapbox.Checked == true) { foreach (var item in Versions) { if (item.IsLocalVersion || item.MType == MVersionType.Snapshot) { showVersionExist = true; cbVersion.Items.Add(item.Name); } if (showVersion == null || !showVersionExist) { btnSetLastVersion_Click(null, null); } else { cbVersion.Text = showVersion; } } } else { foreach (var item in Versions) { if (item.IsLocalVersion || item.MType == MVersionType.Release) { showVersionExist = true; cbVersion.Items.Add(item.Name); } if (showVersion == null || !showVersionExist) { btnSetLastVersion_Click(null, null); } else { cbVersion.Text = showVersion; } } } })); })); th.Start(); } else { //if user don't have a internet connection var th = new Thread(new ThreadStart(delegate { Versions = new MVersionLoader().GetVersionMetadatasFromLocal(MinecraftPath); Invoke(new Action(() => { bool showVersionExist = false; foreach (var item in Versions) { if (item.IsLocalVersion) { MVersion version = Versions.GetVersion(item); showVersionExist = true; cbVersion.Items.Add(item.Name); } if (showVersion == null || !showVersionExist) { btnSetLastVersion_Click(null, null); } else { cbVersion.Text = showVersion; } } })); })); th.Start(); } }
private void btnLaunch_Click(object sender, EventArgs e) { //Launches game string selected = this.cbVersion.GetItemText(this.cbVersion.SelectedItem); System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo versionInf = FileVersionInfo.GetVersionInfo(assembly.Location); if (guna2CheckBox1.Checked == true) { //Playing rpc if (Properties.Settings.Default.langtr == true) { client.UpdateState($"{selected} oynuyor."); } else { client.UpdateState($"Playing {selected}."); } } UpdateSession(MSession.GetOfflineSession(lbUsername.Text)); if (Session == null) { MessageBox.Show("İlk önce giriş yap"); return; } if (cbVersion.Text == "") { MessageBox.Show("Versiyon Seç / Select Version"); return; } var launchOption = createLaunchOption(); if (launchOption == null) { return; } //Creates launch options var version = cbVersion.Text; var useParallel = rbParallelDownload.Checked; var checkHash = cbCheckFileHash.Checked; var downloadAssets = !cbSkipAssetsDownload.Checked; var th = new Thread(() => { try { if (useMJava) { //Minecraft custom java var mjava = new MJava(MinecraftPath.Runtime); mjava.ProgressChanged += Launcher_ProgressChanged; var javapath = mjava.CheckJava(); launchOption.JavaPath = javapath; } MVersion versionInfo = Versions.GetVersion(version); launchOption.StartVersion = versionInfo; MDownloader downloader; if (useParallel) { downloader = new MParallelDownloader(MinecraftPath, versionInfo, 10, true); } else { downloader = new MDownloader(MinecraftPath, versionInfo); } downloader.ChangeFile += Launcher_FileChanged; downloader.ChangeProgress += Launcher_ProgressChanged; downloader.CheckHash = checkHash; downloader.DownloadAll(downloadAssets); var launch = new MLaunch(launchOption); var process = launch.GetProcess(); StartProcess(process); } catch (MDownloadFileException mex) { MessageBox.Show( $"FileName : {mex.ExceptionFile.Name}\n" + $"FilePath : {mex.ExceptionFile.Path}\n" + $"FileUrl : {mex.ExceptionFile.Url}\n" + $"FileType : {mex.ExceptionFile.Type}\n\n" + mex.ToString()); } catch (Win32Exception wex) { MessageBox.Show(wex.ToString() + "\n\nJava Problem"); } catch (Exception ex) { if (Properties.Settings.Default.langtr == true) { this.Alert("Oyun başlatılamadı", "Libaryler indirilemedi veya", "birşeyler ters gitti.", Form_Info.enmType.Error); }//error else { this.Alert("ERROR", "Libraries could not be downloaded or ", "something goes wrong.", Form_Info.enmType.Error); } MessageBox.Show(ex.ToString()); } }); th.Start(); }
private void btn_Launch_Click(object sender, EventArgs e) { if (gameistarted == true) { killgame(); } else { gameistarted = true; string selected = this.cbVersion.GetItemText(this.cbVersion.SelectedItem); System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo versionInf = FileVersionInfo.GetVersionInfo(assembly.Location); client.UpdateState($"Playing {selected}."); UpdateSession(MSession.GetOfflineSession(username_lbl.Text)); if (Session == null) { MessageBox.Show("İlk önce giriş yap"); return; } if (cbVersion.Text == "") { MessageBox.Show("Versiyon Seç / Select Version"); return; } var launchOption = createLaunchOption(); if (launchOption == null) { return; } //Creates launch options var version = cbVersion.Text; var th = new Thread(() => { try { if (useMJava) { //Minecraft custom java var mjava = new MJava(MinecraftPath.Runtime); mjava.ProgressChanged += Launcher_ProgressChanged; var javapath = mjava.CheckJava(); launchOption.JavaPath = javapath; } else { launchOption.JavaPath = javapath; } MVersion versionInfo = Versions.GetVersion(version); launchOption.StartVersion = versionInfo; MDownloader downloader; downloader = new MDownloader(MinecraftPath, versionInfo); downloader.ChangeFile += Launcher_FileChanged; downloader.ChangeProgress += Launcher_ProgressChanged; downloader.CheckHash = true; downloader.DownloadAll(); var launch = new MLaunch(launchOption); var process = launch.GetProcess(); StartProcess(process); btn_Launch.Text = "Oyunu Kapat"; } catch (MDownloadFileException mex) { MessageBox.Show( $"FileName : {mex.ExceptionFile.Name}\n" + $"FilePath : {mex.ExceptionFile.Path}\n" + $"FileUrl : {mex.ExceptionFile.Url}\n" + $"FileType : {mex.ExceptionFile.Type}\n\n" + mex.ToString()); gameistarted = false; } catch (Win32Exception wex) { gameistarted = false; MessageBox.Show(wex.ToString() + "\n\nJava Problem"); } catch (Exception ex) { gameistarted = false; MessageBox.Show(ex.ToString()); } }); th.Start(); } }