Exemple #1
0
        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();
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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();
            }
        }