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(); }
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); } }
private void AppendLiteloaderDownloadTask(Version ver, JWLiteloader liteloader) { string liteloaderPath = NsisoLauncherCore.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.AddDownloadTask(dt); App.Downloader.StartDownload(); }