private void Getkhd() { listView.Items.Clear(); try { string verjson = Beelogin.GetGeneralContent("http://download.mcbbs.net/mc/game/version_manifest.json"); JsonData json = JsonMapper.ToObject(verjson); json = json["versions"]; khdobj = new ObservableCollection <object>(); for (int i = 0; i < json.Count; i++) { // MessageBox.Show(json[i]["id"].ToString());(fz != "" ? $"-{fz}" : "") string type = json[i]["type"].ToString(); khdobj.Add(new Khd { Ver = json[i]["id"].ToString(), Type = (type == "release" ? "正式版-release" : (type == "snapshot" ? "快照版-snapshot" : type)), Time = json[i]["releaseTime"].ToString() }); //VarList_1.Add(new minecraft() { 游戏版本 = json[i].ToString() }); // listView.Items.Add(data["id"][i].ToString()); } //((FindName("listver")) as DataGrid).ItemsSource = VarList_1; //((FindName("listview")) as ListView).ItemsSource = VarList_1; // listView.DataContext = khdobj; } catch { // this.ShowMessageAsync("链接错误", "目前无法连接网络,或服务器正忙,请稍候再试"); listView.Items.Add("链接错误"); btn_下载.IsEnabled = false; } //MessageBox.Show(verjson); listView.Visibility = Visibility.Visible; }
void Bw_DoWork1(object sender, DoWorkEventArgs e) { if (Config.Beelogin) { bgWorker.ReportProgress(2); if (!Config.Beemod) { string fh = Beelogin.Bee_login(Config.beeurl, Config.UserName, Config.Beepsw, ip); if (fh != "yes") { Ts("登录失败", "详细信息:" + fh); bgWorker.ReportProgress(233); return; } } else { var jsondir = core.GetVersionJsonPath(ver.JarId); string tdir = Beelogin.GetLeft(jsondir, "\\") + "\\config"; if (!Directory.Exists(tdir)) { Directory.CreateDirectory(tdir);//创建文件夹 } string fh = Beelogin.Beemodlogin_token(Config.beeurl, Config.UserName, Config.Beepsw, (Config.LaunchMode ? rundir + @".minecraft\config\BeeLogin.cfg" : tdir + "\\BeeLogin.cfg"), ip); if (fh != "yes") { Ts("登录失败", "详细信息:" + fh); bgWorker.ReportProgress(233); } } } }
void Bw_DoWork1(object sender, DoWorkEventArgs e) { downFile = MainWindow.lostFlie; int max = downFile.Count; // SetmaxProgressBar(max + 1); for (int i = 0; max > i; i++) { string filename = downFile[i]; string dir = Beelogin.GetLeft(downFile[i], "\\"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); //创建文件夹 } string URL = "http://download.mcbbs.net" + Beelogin.GetRight(downFile[i], "\\libraries").Replace("\\", "/").ToString(); //MessageBox.Show(URL); if (Beelogin.DownloadFile(URL, filename)) { bgWorker.ReportProgress(i); } else { Dispatcher.Invoke(new Action(() => { ts.Text = "下载过程中出现了错误,将继续下载.出错URL:" + URL; })); } // jdt.Dispatcher.Invoke(new Action(() => { jdt.Value = i; })); } }
private void Start(object sender, RoutedEventArgs e) { id = Beelogin.Beegetid(Config.beeurl); //MessageBox.Show(img); // Newcode(); }
private void Rbtn2_Checked(object sender, RoutedEventArgs e) { label.Content = "感谢 BMCL 提供下载API,Liteloader和OptiFine需要Forge"; listView.Visibility = Visibility.Hidden; LiteloaderView.Visibility = Visibility.Hidden; OptifineView.Visibility = Visibility.Hidden; btn_下载.IsEnabled = true; if (forgeView.Items.Count < 5) { forgeView.Items.Clear(); try { string verjson = Beelogin.GetGeneralContent("http://download.mcbbs.net/forge/promos"); //MessageBox.Show(verjson); JArray json = JArray.Parse(verjson); forgeobj = new ObservableCollection <object>(); for (int i = 0; i < json.Count; i++) { var ver = json[i]["build"].ToString(); System.Diagnostics.Debug.WriteLine(ver); if (ver != "") { // var wj = json[i]["build"]["files"].ToString(); // var wjm = ""; // if (json[i]["build"]["files"][1]["category"].ToString() == "universal") // { // wjm = json[i]["build"]["files"][1]["format"].ToString(); // } // else if (json[i]["build"]["files"][2]["category"].ToString() == "universal") // { // wjm = json[i]["build"]["files"][2]["format"].ToString(); // } //var wjm = json[i]["build"]["files"][0]["category"].ToString(); //MessageBox.Show(wjm); forgeobj.Add(new Forge { Ver = json[i]["build"]["mcversion"].ToString(), Zt = json[i]["name"].ToString(), Id = json[i]["build"]["version"].ToString(), Time = json[i]["build"]["modified"].ToString(), Fz = json[i]["build"]["branch"].ToString() }); //VarList_1.Add(new minecraft() { 游戏版本 = json[i].ToString() }); // System.Diagnostics.Debug.WriteLine(json[i]["build"]["mcversion"].ToString(), json[i]["name"].ToString(), json[i]["build"]["version"].ToString(), json[i]["build"]["modified"].ToString(), json[i]["build"]["branch"].ToString()); //VarList_2.Add(new minecraft_forge() { 游戏版本 = json_var_arr_2[i]["build"]["mcversion"].ToString(), 构建时间 = json_var_arr_2[i]["build"]["modified"].ToString(), 构建版本号 = json_var_arr_2[i]["build"]["version"].ToString(), 版本名 = json_var_arr_2[i]["name"].ToString() }); } } forgeView.DataContext = forgeobj; } catch { btn_下载.IsEnabled = false; this.ShowMessageAsync("链接错误", "目前无法连接网络,或服务器正忙,请稍候再试"); // forgeView.Items.Add("链接错误"); } } forgeView.Visibility = Visibility.Visible; }
private void Rbtn4_Checked(object sender, RoutedEventArgs e) { label.Content = "OptiFine MOD需要Forge,请确保您已安装Forge"; listView.Visibility = Visibility.Hidden; forgeView.Visibility = Visibility.Hidden; LiteloaderView.Visibility = Visibility.Hidden; btn_下载.IsEnabled = true; //this.ShowMessageAsync("功能被删除", "很抱歉,此功能在本版本因资源占用过多被删除,如有需要,请使用E版来自动下载安装Optifine"); if (OptifineView.Items.Count < 5) { OptifineView.Items.Clear(); try { string verjson = Beelogin.GetGeneralContent("http://download.mcbbs.net/optifine/versionlist"); //MessageBox.Show(verjson); JArray json = JArray.Parse(verjson); Optifineobj = new ObservableCollection <object>(); for (int i = 0; i < json.Count; i++) { var ver = json[i]["mcversion"].ToString(); // var wj = json[i]["build"]["files"].ToString(); // var wjm = ""; // if (json[i]["build"]["files"][1]["category"].ToString() == "universal") // { // wjm = json[i]["build"]["files"][1]["format"].ToString(); // } // else if (json[i]["build"]["files"][2]["category"].ToString() == "universal") // { // wjm = json[i]["build"]["files"][2]["format"].ToString(); // } // (json[i]["type"].ToString() == "RELEASE" ? "正式版-release" : json[i]["type"].ToString() == "SNAPSHOT" ? "快照版-snapshot" : json[i]["type"].ToString()) Optifineobj.Add(new Optifine { Ver = json[i]["mcversion"].ToString(), Zt = json[i]["type"].ToString(), Id = json[i]["patch"].ToString() }); // MessageBox.Show(ver); //VarList_1.Add(new minecraft() { 游戏版本 = json[i].ToString() }); //VarList_2.Add(new minecraft_forge() { 游戏版本 = json_var_arr_2[i]["build"]["mcversion"].ToString(), 构建时间 = json_var_arr_2[i]["build"]["modified"].ToString(), 构建版本号 = json_var_arr_2[i]["build"]["version"].ToString(), 版本名 = json_var_arr_2[i]["name"].ToString() }); } OptifineView.DataContext = Optifineobj; } catch { btn_下载.IsEnabled = false; this.ShowMessageAsync("链接错误", "目前无法连接网络,或服务器正忙,请稍候再试"); // forgeView.Items.Add("链接错误"); } } OptifineView.Visibility = Visibility.Visible; }
private void Btn_确定_Click(object sender, RoutedEventArgs e) { string fh = Beelogin.Beeregister(Config.beeurl, textBox_name.Text, passbox_1.Password, passbox_1.Password, id, textBox_code.Text, MainWindow.ip); if (fh == "ok") { this.ShowMessageAsync("注册成功", "已成功注册"); Close(); } else { this.ShowMessageAsync("注册失败", fh); Newcode(); } }
void Bw_asswork(object sender, DoWorkEventArgs e) { bool newass; if (MainWindow.lostasset.Count != 0) { newass = true; } else { newass = false; } downFile = (newass == true ? MainWindow.lostasset : MainWindow.lostlegacyasset); int max = downFile.Count; // SetmaxProgressBar(max + 1); for (int i = 0; max > i; i++) { string filename; string two; if (newass == true) { two = downFile[i].Substring(0, 2); filename = @AppDomain.CurrentDomain.BaseDirectory + @".minecraft\assets\objects\" + two + "\\" + downFile[i]; //MessageBox.Show(filename); } else { filename = @AppDomain.CurrentDomain.BaseDirectory + @".minecraft\assets\" + downFile[i]; } string dir = Beelogin.GetLeft(filename, "\\"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir);//创建文件夹 } string URL = "http://download.mcbbs.net/" + (newass == true ? "assets" : "resources") + "/" + (newass == true ? $"{downFile[i].Substring(0, 2)}/" : "") + downFile[i].Replace("\\", "/"); try { if (Beelogin.DownloadFile(URL, filename) == true) { bgWorker.ReportProgress(i); } } catch { Dispatcher.Invoke(new Action(() => { ts.Text = "下载过程中出现了错误,将继续下载.出错URL:" + URL; })); } } }
private void Newcode() { // image.Source = new BitmapImage(new Uri(beelogin.beegetcode(Config.beeurl, id))); Random ro = new Random(); int iResult; iResult = ro.Next(); ImageBrush ib = new ImageBrush() { ImageSource = new BitmapImage(new Uri(Beelogin.Beegetcode(Config.beeurl, id + "&" + iResult))) }; code.Background = ib; }
private void OnGameExit(int code) { // MessageBox.Show(code.ToString()); if (Config.Beelogin) { Beelogin.Beequit(Config.beeurl, Config.UserName, ip); } if (code == 0) { // Show(); //Close(); Process.GetCurrentProcess().Kill(); } else { Show(); // message.msg.gb(); this.ShowMessageAsync("游戏已崩溃", "游戏日志保存在BeeLauncher.log", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" }); bgWorker.Dispose(); } }
public MainWindow() { InitializeComponent(); // System.Windows.Forms.NotifyIcon notify = new System.Windows.Forms.NotifyIcon() // { // Icon = new System.Drawing.Icon(@"ico.ico"), // Visible = true // }; bool cfg = File.Exists(rundir + "BeeLauncher.cfg"); if (!cfg || string.IsNullOrWhiteSpace(Config.UserName)) { Autonc(); try { textBox_java.Text = KMCCC.Tools.SystemTools.FindJava().Last(); } catch { textBox_java.Text = "未获取到Java,请手动指定"; } if (Config.Beelogin && !string.IsNullOrWhiteSpace(Config.beeurl)) { CheckBox_beelogin.IsChecked = true; CheckBox_beijing.IsChecked = true; passbox_beelogin.IsEnabled = true; textblpsw.Visibility = Visibility.Visible; passbox_beelogin.Visibility = Visibility.Visible; CheckBox_mod.Visibility = Visibility.Visible; passbox_beelogin.Password = Config.Beepsw; Btn_zhuce.Visibility = Visibility.Visible; if (Config.Beemod) { CheckBox_mod.IsChecked = true; } } 设置框.Visibility = Visibility.Visible; } else { if (!string.IsNullOrWhiteSpace(Config.color) && !string.IsNullOrWhiteSpace(Config.Theme)) { if (!string.IsNullOrWhiteSpace(Config.color)) { ThemeManager.ChangeAppStyle(System.Windows.Application.Current, ThemeManager.GetAccent(Config.color), ThemeManager.GetAppTheme("BaseLight")); } else { Config.color = "Blue"; } if (Config.Theme == "Dark") { ThemeManager.ChangeAppStyle(System.Windows.Application.Current, ThemeManager.GetAccent(Config.color), ThemeManager.GetAppTheme("BaseDark")); } } } if (Config.Beelogin) { ip = Beelogin.GetIPAddress(); } App.Core.GameExit += OnExit; App.Core.GameLog += OnLog; Getver(); }
private async void Btn_启动_Click(object sender, RoutedEventArgs e) { if (设置框.IsVisible) { Nosave(); return; } Btn_启动.IsEnabled = false; runts.Text = "正在启动中"; runts.Visibility = Visibility.Visible; if (ListVersions.Items.Count == 0) { await this.ShowMessageAsync("无法启动游戏", "没有读取到游戏版本", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" }); Btn_启动.IsEnabled = true; runts.Text = null; load.Visibility = Visibility.Hidden; return; } if (DownWindow.bgWorker.IsBusy) { //bgWorker.IsBusy await this.ShowMessageAsync("正在下载", "正在下载资源文件", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" }); // new downWindow { Owner = this }.ShowDialog(); //downWindow.Showdown(); downw.ShowDialog(); //this.Hide(); //down.Show(); } else { runts.Text = "检查支持库"; lostFlie.Clear();//清空列表,防止重新启动后,列表重复 ver = (Version)ListVersions.SelectedItem; core = LauncherCore.Create(); var version = ver;//设置读取的版本配置为当前选择的项 var jarid = ver.JarId; // MessageBox.Show(core.GetVersionJsonPath(jarid)); if (!File.Exists(core.GetVersionJsonPath(jarid))) { Ts("无法启动游戏", "游戏核心不存在,请确认已选择正确的核心版本!"); runts.Visibility = Visibility.Hidden; Btn_启动.Content = "启动游戏"; load.Visibility = Visibility.Hidden; return; } try { var libs = version.Libraries.Select(lib => core.GetLibPath(lib)); var natives = version.Natives.Select(native => core.GetNativePath(native)); foreach (string libflie in libs) { if (!File.Exists(libflie)) { lostFlie.Add(libflie); // MessageBox.Show("当前缺少的Libraries文件有:" + file); } } foreach (string libflie in natives) { if (!File.Exists(libflie)) { lostFlie.Add(libflie); //MessageBox.Show("当前缺少的Libraries-natives文件有:" + file); } } if (lostFlie.Count != 0) { //返回一个值,中止继续执行后面的代码 new DownWindow { Owner = this }.ShowDialog(); } } catch { Ts("无法启动游戏", "版本信息获取失败,无法读取所需的支持库,请确认已选择正确的核心版本!"); runts.Visibility = Visibility.Hidden; Btn_启动.Content = "启动游戏"; load.Visibility = Visibility.Hidden; return; } lostFlie.Clear(); lostasset.Clear(); lostlegacyasset.Clear(); runts.Text = "检查资源文件"; if (!Directory.Exists(rundir + ".minecraft/assets/indexes")) { Directory.CreateDirectory(rundir + ".minecraft/assets/indexes");//创建文件夹 } if (!Directory.Exists(rundir + ".minecraft/assets/objects")) { Directory.CreateDirectory(rundir + ".minecraft/assets/objects");//创建文件夹 } var jsondir = core.GetVersionJsonPath(jarid); string json = File.ReadAllText(jsondir); // MessageBox.Show(core.VersionLocator); JsonData data = JsonMapper.ToObject(json); string type; string url; try { type = data["assetIndex"]["id"].ToString(); url = data["assetIndex"]["url"].ToString().Replace("https://launchermeta.mojang.com", "http://download.mcbbs.net"); if (type != "legacy") { string jsonindex; if (File.Exists(rundir + @".minecraft\assets\indexes\" + type + ".json")) { jsonindex = File.ReadAllText(rundir + @".minecraft\assets\indexes\" + type + ".json"); } else { jsonindex = Beelogin.GetGeneralContent(url); File.WriteAllText(rundir + @".minecraft\assets\indexes\" + type + ".json", jsonindex, Encoding.Default); } JsonData jdata = JsonMapper.ToObject(jsonindex); jdata = jdata["objects"]; string hash; string two; string lj; for (int i = 0; i < jdata.Count; i++) { hash = jdata[i]["hash"].ToString(); two = hash.Substring(0, 2); lj = two + "\\" + hash; if (!File.Exists(rundir + @".minecraft\assets\objects\" + lj)) { lostasset.Add(hash); } } } else if (type == "legacy") { string jsonindex; if (File.Exists(rundir + @".minecraft\assets\indexes\legacy.json")) { jsonindex = File.ReadAllText(rundir + ".minecraft/assets/indexes/legacy.json"); } else { jsonindex = Beelogin.GetGeneralContent(url); } File.WriteAllText(rundir + @".minecraft\assets\indexes\legacy.json", jsonindex, Encoding.Default); JObject jdata = (JObject)JsonConvert.DeserializeObject(jsonindex); jdata = (JObject)jdata["objects"]; // jdata = jdata["objects"]; foreach (var name in jdata) { //MessageBox.Show(rundir + @".minecraft\assets\" + name.Key); if (!File.Exists(rundir + @".minecraft\assets\" + name.Key)) { lostlegacyasset.Add(name.Key.Replace("/", "\\")); } } } } catch { type = data["assets"].ToString(); url = "null"; if (type != "legacy") { string jsonindex; if (File.Exists(rundir + @".minecraft\assets\indexes\" + type + ".json")) { jsonindex = File.ReadAllText(rundir + @".minecraft\assets\indexes\" + type + ".json"); JsonData jdata = JsonMapper.ToObject(jsonindex); jdata = jdata["objects"]; string hash; string two; string lj; for (int i = 0; i < jdata.Count; i++) { hash = jdata[i]["hash"].ToString(); two = hash.Substring(0, 2); lj = two + "\\" + hash; if (!File.Exists(rundir + @".minecraft\assets\objects\" + lj)) { lostasset.Add(hash); } } lostassets = false; } else { lostassets = true; } } else if (type == "legacy") { string jsonindex; if (File.Exists(rundir + @".minecraft\assets\indexes\legacy.json")) { jsonindex = File.ReadAllText(rundir + ".minecraft/assets/indexes/legacy.json"); File.WriteAllText(rundir + @".minecraft\assets\indexes\legacy.json", jsonindex, Encoding.Default); JObject jdata = (JObject)JsonConvert.DeserializeObject(jsonindex); jdata = (JObject)jdata["objects"]; // jdata = jdata["objects"]; foreach (var name in jdata) { //MessageBox.Show(rundir + @".minecraft\assets\" + name.Key); if (!File.Exists(rundir + @".minecraft\assets\" + name.Key)) { lostlegacyasset.Add(name.Key.Replace("/", "\\")); } } lostassets = false; } else { lostassets = true; } } } try { if (lostasset.Count != 0 || lostlegacyasset.Count != 0) { if (url == "null") { await this.ShowMessageAsync("资源文件缺失", "发现缺少了" + (lostasset.Count != 0 ? lostasset.Count.ToString() : lostlegacyasset.Count != 0 ? lostlegacyasset.Count.ToString() : null) + "个资源文件,这可能导致游戏声音丢失\n但您的游戏核心版本较旧,不能自动补全.\n建议前往下载游戏窗口下载新版本客户端!", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" }); // Ts("资源文件缺失", "发现缺少了" + (lostasset.Count != 0 ? lostasset.Count.ToString() : lostlegacyasset.Count != 0 ? lostlegacyasset.Count.ToString() : null) + "个资源文件,但您的游戏核心版本较旧,不能自动补全.\n建议前往下载游戏窗口下载新版本客户端!"); } else { // new downWindow { Owner = this }.ShowDialog(); downw.Owner = this; downw.ShowDialog(); } } } catch { //ts("错误", "尝试检查资源文件时失败,建议前往下载游戏窗口下载新版本客户端!"); lostassets = true; // await this.ShowMessageAsync("错误", "尝试检查资源文件时失败,建议前往下载游戏窗口下载新版本客户端!", MessageDialogStyle.Affirmative, new MetroDialogSettings() { AffirmativeButtonText = "确定" }); } } if (!bgWorker.IsBusy) { //MessageBox.Show("1"); // bgWorker.CancelAsync(); //bgWorker.Dispose(); if (islaunch) { bgWorker.RunWorkerAsync(); } else { bgWorker.WorkerReportsProgress = true; bgWorker.ProgressChanged += new ProgressChangedEventHandler(Bw_ProgressChanged); bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Bw_RunWorkerCompleted); bgWorker.DoWork += new DoWorkEventHandler(Bw_DoWork1); bgWorker.RunWorkerAsync(); islaunch = true; } } }
void Bw_DoWork4(object sender, DoWorkEventArgs e) { if (!e.Cancel) { string dir_name = @AppDomain.CurrentDomain.BaseDirectory; Optifine Optifine = null; // forge forge = null; Dispatcher.Invoke(new Action(() => { Optifine = OptifineView.SelectedItem as Optifine; })); try { if (Optifine != null && Optifine is Optifine) { string var_name = Optifine.Ver; //游戏版本号 string zt = Optifine.Zt; //类型 string patch = Optifine.Id; //版本号 if (File.Exists(dir_name + "/.minecraft/mods/OptiFine_" + var_name + "_" + zt + "_" + patch + ".jar")) { Ts("文件已存在", "您要下载的OptiFine已存在,无需下载."); e.Cancel = true; return; } if (!File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".json") || !File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".jar")) { if (!Directory.Exists(dir_name + "/.minecraft/versions/" + var_name)) { Directory.CreateDirectory(dir_name + "/.minecraft/versions/" + var_name);//创建文件夹 } string jarurl = "http://download.mcbbs.net/versions/" + var_name + "/client"; string jsonurl = "http://download.mcbbs.net/versions/" + var_name + "/json"; if (Beelogin.DownloadFile(jarurl, dir_name + " /.minecraft/versions/" + var_name + "/" + var_name + ".jar") == true) { if (Beelogin.DownloadFile(jsonurl, dir_name + "/.minecraft/versions/" + var_name + "/" + var_name + ".json") == false) { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载OptiFine\r\n出错URL:" + jsonurl); Directory.Delete(dir_name + "/.minecraft/versions/" + var_name, true); e.Cancel = true; return; } } else { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载OptiFine\r\n出错URL:" + jarurl); Directory.Delete(dir_name + "/.minecraft/versions/" + var_name, true); e.Cancel = true; return; } } // string forge_link = $"http://download.mcbbs.net/maven/net/minecraftforge/forge/{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"/forge-{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"-universal.jar"; // string forgedir = dir_name + "/.minecraft/libraries/net/minecraftforge/forge/" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + "/" + "forge-" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + ".jar"; if (!Directory.Exists(dir_name + "/.minecraft/mods")) { Directory.CreateDirectory(dir_name + "/.minecraft/mods"); } if (!Directory.Exists(dir_name + "/.minecraft/beelanuch_downtemp")) { Directory.CreateDirectory(dir_name + "/.minecraft/beelanuch_downtemp"); } string Opti_link = "http://download.mcbbs.net/optifine/" + var_name + "/" + zt + "/" + patch; // Console.WriteLine(forge_link); // MessageBox.Show(forge_link); if (Beelogin.DownloadFile(Opti_link, dir_name + "/.minecraft/beelanuch_downtemp/optifine.jar")) { // MessageBox.Show(Lite_link); // KMCCC.Tools.ZipTools.UnzipFile(dir_name + "/.minecraft/libraries/net/minecraftforge/forge/" + var_name + "-" + var_forge + "/" + "forge-" + var_name + "-" + var_forge + ".jar", dir_name + "/.minecraft/beelanuch_downtemp", null); //UnZip(forgedir, dir_name + "/.minecraft/beelanuch_downtemp"); File.Move(dir_name + "/.minecraft/beelanuch_downtemp/optifine.jar", dir_name + "/.minecraft/mods/OptiFine_" + var_name + "_" + zt + "_" + patch + ".jar"); Directory.Delete(dir_name + "/.minecraft/beelanuch_downtemp", true); Ts("下载成功!", "'" + var_name + "'版本的'Optifine_" + zt + "_" + patch + "'已下载完毕"); e.Cancel = true; return; } else { Ts("下载失败", "下载'" + var_name + "'版本的'Optifine_" + zt + "_" + patch + "'失败,请重试或下载其他版本\r\n出错URL:" + Opti_link); // Directory.Delete(dir_name + "/.minecraft/versions/" + var_name + "-" + "forge" + var_name + "-" + var_forge, true); e.Cancel = true; return; } } } catch { Ts("下载失败", "下载失败,请重试或下载其他版本"); e.Cancel = true; return; } } }
void Bw_DoWork3(object sender, DoWorkEventArgs e) { if (!e.Cancel) { string dir_name = @AppDomain.CurrentDomain.BaseDirectory; Liteloader Liteloader = null; // forge forge = null; Dispatcher.Invoke(new Action(() => { Liteloader = LiteloaderView.SelectedItem as Liteloader; })); try { if (Liteloader != null && Liteloader is Liteloader) { string var_name = Liteloader.Ver; //游戏版本号 string zt = Liteloader.Zt; //类型 string var_lite = Liteloader.Id; //版本号 if (File.Exists(dir_name + "/.minecraft/mods/liteloader-" + var_name + "-" + zt + ".jar") || File.Exists(dir_name + "/.minecraft/mods/liteloader-" + var_lite + ".jar")) { Ts("文件已存在", "您要下载的LiteLoader已存在,无需下载."); e.Cancel = true; return; } if (!File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".json") || !File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".jar")) { if (!Directory.Exists(dir_name + "/.minecraft/versions/" + var_name)) { Directory.CreateDirectory(dir_name + "/.minecraft/versions/" + var_name);//创建文件夹 } string jarurl = "http://download.mcbbs.net/versions/" + var_name + "/client"; string jsonurl = "http://download.mcbbs.net/versions/" + var_name + "/json"; if (Beelogin.DownloadFile(jarurl, dir_name + " /.minecraft/versions/" + var_name + "/" + var_name + ".jar") == true) { if (Beelogin.DownloadFile(jsonurl, dir_name + "/.minecraft/versions/" + var_name + "/" + var_name + ".json") == false) { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载LiteLoader\r\n出错URL:" + jsonurl); Directory.Delete(dir_name + "/.minecraft/versions/" + var_name, true); e.Cancel = true; return; } } else { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载LiteLoader\r\n出错URL:" + jarurl); Directory.Delete(dir_name + "/.minecraft/versions/" + var_name, true); e.Cancel = true; return; } } // string forge_link = $"http://download.mcbbs.net/maven/net/minecraftforge/forge/{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"/forge-{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"-universal.jar"; // string forgedir = dir_name + "/.minecraft/libraries/net/minecraftforge/forge/" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + "/" + "forge-" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + ".jar"; if (!Directory.Exists(dir_name + "/.minecraft/mods")) { Directory.CreateDirectory(dir_name + "/.minecraft/mods"); } if (!Directory.Exists(dir_name + "/.minecraft/beelanuch_downtemp")) { Directory.CreateDirectory(dir_name + "/.minecraft/beelanuch_downtemp"); } string Lite_link; if (zt == "SNAPSHOT") { Lite_link = "http://download.mcbbs.net/maven/com/mumfrey/liteloader/" + var_name + "-" + zt + "/liteloader-" + var_name + "-" + zt + ".jar"; } else { Lite_link = "http://download.mcbbs.net/maven/com/mumfrey/liteloader/" + var_name + "/liteloader-" + var_lite + ".jar"; } // Console.WriteLine(forge_link); // MessageBox.Show(forge_link); if (Beelogin.DownloadFile(Lite_link, dir_name + "/.minecraft/beelanuch_downtemp/liteloader.jar")) { // MessageBox.Show(Lite_link); // KMCCC.Tools.ZipTools.UnzipFile(dir_name + "/.minecraft/libraries/net/minecraftforge/forge/" + var_name + "-" + var_forge + "/" + "forge-" + var_name + "-" + var_forge + ".jar", dir_name + "/.minecraft/beelanuch_downtemp", null); //UnZip(forgedir, dir_name + "/.minecraft/beelanuch_downtemp"); if (zt == "SNAPSHOT") { File.Move(dir_name + "/.minecraft/beelanuch_downtemp/liteloader.jar", dir_name + "/.minecraft/mods/liteloader-" + var_name + "-" + zt + ".jar"); } else { File.Move(dir_name + "/.minecraft/beelanuch_downtemp/liteloader.jar", dir_name + "/.minecraft/mods/liteloader-" + var_lite + ".jar"); } Directory.Delete(dir_name + "/.minecraft/beelanuch_downtemp", true); Ts("下载成功!", "'" + var_name + "'版本的liteloader'" + var_lite + "'已下载完毕"); e.Cancel = true; return; } else { Ts("下载失败", "下载'" + var_name + "'版本的liteloader'" + var_lite + "'失败,请重试或下载其他版本\r\n出错URL:" + Lite_link); // Directory.Delete(dir_name + "/.minecraft/versions/" + var_name + "-" + "forge" + var_name + "-" + var_forge, true); e.Cancel = true; return; } } } catch { Ts("下载失败", "下载失败,请重试或下载其他版本"); e.Cancel = true; return; } } }
void Bw_DoWork1(object sender, DoWorkEventArgs e) { if (!e.Cancel) { //load.Dispatcher.Invoke(new Action(() => { load.Visibility = Visibility; })); // btn_下载.Dispatcher.Invoke(new Action(() => { btn_下载.Content = "正在下载"; })); string dir_name = @AppDomain.CurrentDomain.BaseDirectory; // string select = ""; // Dispatcher.Invoke(new Action(() => { select = listView.SelectedItem.ToString(); })); Khd khd = null; Dispatcher.Invoke(new Action(() => { khd = listView.SelectedItem as Khd; })); string select = khd.Ver;//forge版本号 try { //MessageBox.Show(File.Exists(dir_name + @"\.minecraft\versions\" + select + "\\" + select + ".json").ToString()); if (File.Exists(dir_name + @"\.minecraft\versions\" + select + "\\" + select + ".json")) { Ts("文件已存在", "您要下载的客户端已存在,无需下载."); e.Cancel = true; return; } if (!Directory.Exists(dir_name + "/.minecraft/versions/" + select)) { Directory.CreateDirectory(dir_name + "/.minecraft/versions/" + select);//创建文件夹 } string jarurl = "http://download.mcbbs.net/versions/" + select + "/client"; string jsonurl = "http://download.mcbbs.net/versions/" + select + "/json"; // MessageBox.Show(GetHTML(jsonurl)); if (Beelogin.DownloadFile(jarurl, dir_name + " /.minecraft/versions/" + select + "/" + select + ".jar") == true) { string json = Beelogin.GetGeneralContent(jsonurl); if (json != "") { File.WriteAllText(dir_name + " /.minecraft/versions/" + select + "/" + select + ".json", json, Encoding.Default); Ts("下载完成", select + "版本的客户端下载完成!"); e.Cancel = true; return; } else { Ts("下载失败", select + "版本的客户端下载失败,请尝试下载其他版本\r\n出错URL:" + jsonurl); Directory.Delete(dir_name + "/.minecraft/versions/" + select, true); e.Cancel = true; return; } } else { Ts("下载失败", select + "版本的客户端下载失败,请尝试下载其他版本\r\n出错URL:" + jarurl); Directory.Delete(dir_name + "/.minecraft/versions/" + select, true); e.Cancel = true; return; } } catch { Ts("下载失败", "客户端下载失败,请重试或下载其他版本"); Directory.Delete(dir_name + "/.minecraft/versions/" + select, true); e.Cancel = true; return; } } }
void Bw_DoWork2(object sender, DoWorkEventArgs e) { if (!e.Cancel) { string dir_name = @AppDomain.CurrentDomain.BaseDirectory; Forge forge = null; Dispatcher.Invoke(new Action(() => { forge = forgeView.SelectedItem as Forge; })); try { if (forge != null && forge is Forge) { string var_name = forge.Ver; //游戏版本号 string var_forge = forge.Id; //forge版本号http://download.mcbbs.net/versions/ string fz = forge.Fz; //forge分支 if (File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge + "\\" + var_name + "-" + "forge" + var_name + "-" + var_forge + ".json")) { Ts("文件已存在", "您要下载的客户端已存在,无需下载."); e.Cancel = true; return; } if (!File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".json") || !File.Exists(dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".jar")) { if (!Directory.Exists(dir_name + @"\.minecraft\versions\" + var_name)) { Directory.CreateDirectory(dir_name + @"\.minecraft\versions\" + var_name);//创建文件夹 } string jarurl = "http://download.mcbbs.net/versions/" + var_name + "/client"; string jsonurl = "http://download.mcbbs.net/versions/" + var_name + "/json"; if (Beelogin.DownloadFile(jarurl, dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".jar") == true) { if (Beelogin.DownloadFile(jsonurl, dir_name + @"\.minecraft\versions\" + var_name + "\\" + var_name + ".json") == false) { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载FORGE\r\n出错URL:" + jsonurl); Directory.Delete(dir_name + @"\.minecraft\versions\" + var_name, true); e.Cancel = true; return; } } else { Ts("下载失败", var_name + "版本的客户端下载失败,不能继续下载FORGE\r\n出错URL:" + jarurl); Directory.Delete(dir_name + @"\.minecraft\versions\" + var_name, true); e.Cancel = true; return; } } // string forge_link = "http://download.mcbbs.net/forge/download?mcversion=" + var_name + "&version=" + var_forge + "&branch=" + var_name + "&category=universal&format=jar"; string forge_link = $"http://download.mcbbs.net/maven/net/minecraftforge/forge/{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"/forge-{var_name}-{var_forge}" + (fz != "" ? $"-{fz}" : "") + $"-universal.jar"; string forgedir = dir_name + @".minecraft\libraries\net\minecraftforge\forge\" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + "\\" + "forge-" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "") + ".jar"; if (!Directory.Exists(dir_name + @".minecraft\libraries\net\minecraftforge\forge\" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : ""))) { Directory.CreateDirectory(dir_name + @".minecraft\libraries\net\minecraftforge\forge\" + var_name + "-" + var_forge + (fz != "" ? $"-{fz}" : "")); } if (!Directory.Exists(dir_name + @".minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge)) { Directory.CreateDirectory(dir_name + @".minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge); } if (!Directory.Exists(dir_name + @".minecraft\beelanuch_downtemp")) { Directory.CreateDirectory(dir_name + @".minecraft\beelanuch_downtemp"); } Console.WriteLine(forge_link); if (Beelogin.DownloadFile(forge_link, forgedir)) { // MessageBox.Show(forgedir); // KMCCC.Tools.ZipTools.UnzipFile(dir_name + @".minecraft\libraries\net\minecraftforge\forge\" + var_name + "-" + var_forge + "\\" + "forge-" + var_name + "-" + var_forge + ".jar", dir_name + @".minecraft\beelanuch_downtemp", null); if (!UnZip(forgedir, dir_name + @".minecraft\beelanuch_downtemp\", null)) { Ts("解压失败", "解压'" + var_name + "'版本的forge'" + var_forge + "'失败,请重试或下载其他版本"); // Directory.Delete(dir_name + @".minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge, true); e.Cancel = true; return; } // using (ZipFile zip = new ZipFile(forgedir)) // { // MessageBox.Show("1"); // zip.ExtractAll(dir_name + @"\.minecraft\beelanuch_downtemp", ExtractExistingFileAction.OverwriteSilently); // } File.Move(dir_name + @".minecraft\beelanuch_downtemp\version.json", dir_name + @".minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge + @"\" + var_name + "-" + "forge" + var_name + "-" + var_forge + ".json"); //MessageBox.Show("2"); Directory.Delete(dir_name + @".minecraft\beelanuch_downtemp", true); Ts("下载成功!", "'" + var_name + "'版本的forge'" + var_forge + "'已下载完毕"); e.Cancel = true; return; } else { Ts("下载失败", "下载'" + var_name + "'版本的forge'" + var_forge + "'失败,请重试或下载其他版本\r\n出错URL:" + forge_link); // Directory.Delete(dir_name + @".minecraft\versions\" + var_name + "-" + "forge" + var_name + "-" + var_forge, true); e.Cancel = true; return; } } } catch { Ts("下载失败", "下载失败,请重试或下载其他版本"); e.Cancel = true; return; } } }