Esempio n. 1
0
        private async void DownloadLiteloaderButton_Click(object sender, RoutedEventArgs e)
        {
            Version ver = null;

            if (verToInstallLiteComboBox.SelectedItem != null)
            {
                ver = (Version)verToInstallLiteComboBox.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装Liteloader的Minecraft", "您需要选择一个需要安装Liteloader的Minecraft本体");

                return;
            }

            JWLiteloader liteloader = null;

            if (liteloaderListDataGrid.SelectedItem != null)
            {
                liteloader = (JWLiteloader)liteloaderListDataGrid.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装的Liteloader", "您需要选择一个要安装Liteloader");

                return;
            }

            AppendLiteloaderDownloadTask(ver, liteloader);
            this.Close();
        }
Esempio n. 2
0
        //TODO:修复FORGE刷新不成功崩溃
        private async void DownloadForgeButton_Click(object sender, RoutedEventArgs e)
        {
            Version ver = null;

            if (verToInstallForgeComboBox.SelectedItem != null)
            {
                ver = (Version)verToInstallForgeComboBox.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装Forge的Minecraft", "您需要选择一个需要安装Forge的Minecraft本体");

                return;
            }

            JWForge forge = null;

            if (forgeListDataGrid.SelectedItem != null)
            {
                forge = (JWForge)forgeListDataGrid.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装的Forge", "您需要选择一个要安装Forge");

                return;
            }

            AppendForgeDownloadTask(ver, forge);
            this.Close();
        }
Esempio n. 3
0
        //启动游戏按钮点击
        private void launchButton_Click(object sender, RoutedEventArgs e)
        {
            //获取启动版本
            MineRealmsLauncherCore.Modules.Version launchVersion = null;
            if (launchVersionCombobox.SelectedItem != null)
            {
                launchVersion = (MineRealmsLauncherCore.Modules.Version)launchVersionCombobox.SelectedItem;
            }

            //获取验证方式
            AuthenticationNode authNode     = null;
            string             authNodeName = null;

            if (authTypeCombobox.SelectedItem != null)
            {
                KeyValuePair <string, AuthenticationNode> node = (KeyValuePair <string, AuthenticationNode>)authTypeCombobox.SelectedItem;
                authNode     = node.Value;
                authNodeName = node.Key;
            }

            //获取用户信息
            string   userName         = userComboBox.Text;
            string   selectedUserUUID = (string)userComboBox.SelectedValue;
            bool     isNewUser        = string.IsNullOrWhiteSpace(selectedUserUUID);
            UserNode userNode         = null;

            if (!string.IsNullOrWhiteSpace(userName))
            {
                if (!isNewUser)
                {
                    userNode = ((KeyValuePair <string, UserNode>)userComboBox.SelectedItem).Value;
                }
                else
                {
                    userNode = new UserNode()
                    {
                        AuthModule = authNodeName, UserName = userName
                    };
                }
            }
            else
            {
                userNode = null;
            }


            this.Launch?.Invoke(this, new LaunchEventArgs()
            {
                AuthNode = authNode, UserNode = userNode, LaunchVersion = launchVersion, IsNewUser = isNewUser
            });
        }
Esempio n. 4
0
        private async void RefreshForge()
        {
            Version ver = null;

            if (verToInstallForgeComboBox.SelectedItem != null)
            {
                ver = (Version)verToInstallForgeComboBox.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装Forge的版本", "您需要选择一个需要安装Forge的Minecraft本体");

                return;
            }
            var loading = await this.ShowProgressAsync("获取Forge列表中", "请稍后");

            loading.SetIndeterminate();
            List <JWForge> result = null;

            forgeList.Clear();
            try
            {
                result = await apiHandler.GetForgeList(ver);
            }
            catch (WebException)
            {
                await this.ShowMessageAsync("获取Forge列表失败", "请检查您的网络是否正常或稍后再试");

                return;
            }
            await loading.CloseAsync();

            if (result == null || result.Count == 0)
            {
                await this.ShowMessageAsync("没有匹配该版本的Forge", "貌似没有支持这个版本的Forge,请尝试更换另一个版本");
            }
            else
            {
                foreach (var item in result)
                {
                    forgeList.Add(item);
                }
            }
        }
Esempio n. 5
0
        private async void RefreshLiteloader()
        {
            Version ver = null;

            if (verToInstallLiteComboBox.SelectedItem != null)
            {
                ver = (Version)verToInstallLiteComboBox.SelectedItem;
            }
            else
            {
                await this.ShowMessageAsync("您未选择要安装Liteloader的版本", "您需要选择一个需要安装Liteloader的Minecraft本体");

                return;
            }
            var loading = await this.ShowProgressAsync("获取Liteloader列表中", "请稍后");

            loading.SetIndeterminate();
            JWLiteloader result = new JWLiteloader();

            liteloaderList.Clear();
            try
            {
                result = await apiHandler.GetLiteloaderList(ver);
            }
            catch (WebException)
            {
                await this.ShowMessageAsync("获取Liteloader列表失败", "请检查您的网络是否正常或稍后再试");

                return;
            }
            await loading.CloseAsync();

            if (result == null)
            {
                await this.ShowMessageAsync("没有匹配该版本的Liteloader", "貌似没有支持这个版本的Liteloader,请尝试更换另一个版本");
            }
            else
            {
                liteloaderList.Add(result);
            }
        }
Esempio n. 6
0
        private void AppendLiteloaderDownloadTask(Version ver, JWLiteloader liteloader)
        {
            string       liteloaderPath = MineRealmsLauncherCore.PathManager.TempDirectory + string.Format(@"\Liteloader_{0}-Installer.jar", liteloader.Version);
            DownloadTask dt             = new DownloadTask("liteloader核心",
                                                           string.Format("https://bmclapi2.bangbang93.com/liteloader/download?version={0}", liteloader.Version),
                                                           liteloaderPath);

            dt.Todo = new Func <Exception>(() =>
            {
                try
                {
                    CommonInstaller installer = new CommonInstaller(liteloaderPath, new CommonInstallOptions()
                    {
                        GameRootPath = App.handler.GameRootPath
                    });
                    installer.BeginInstall();
                    return(null);
                }
                catch (Exception ex)
                { return(ex); }
            });
            App.downloader.SetDownloadTasks(dt);
            App.downloader.StartDownload();
        }
Esempio n. 7
0
        private void AppendForgeDownloadTask(Version ver, JWForge forge)
        {
            string       forgePath = MineRealmsLauncherCore.PathManager.TempDirectory + string.Format(@"\Forge_{0}-Installer.jar", forge.Build);
            DownloadTask dt        = new DownloadTask("forge核心",
                                                      string.Format("https://bmclapi2.bangbang93.com/forge/download/{0}", forge.Build),
                                                      forgePath);

            dt.Todo = new Func <Exception>(() =>
            {
                try
                {
                    CommonInstaller installer = new CommonInstaller(forgePath, new CommonInstallOptions()
                    {
                        GameRootPath = App.handler.GameRootPath
                    });
                    installer.BeginInstall();
                    return(null);
                }
                catch (Exception ex)
                { return(ex); }
            });
            App.downloader.SetDownloadTasks(dt);
            App.downloader.StartDownload();
        }