Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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);
             }
         }
     }
 }
Esempio n. 3
0
        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; }));
            }
        }
Esempio n. 4
0
        private void Start(object sender, RoutedEventArgs e)
        {
            id = Beelogin.Beegetid(Config.beeurl);


            //MessageBox.Show(img);
            //
            Newcode();
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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();
            }
        }
Esempio n. 8
0
        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; }));
                }
            }
        }
Esempio n. 9
0
        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;
        }
Esempio n. 10
0
 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();
     }
 }
Esempio n. 11
0
        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();
        }
Esempio n. 12
0
        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;
                }
            }
        }
Esempio n. 13
0
        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;
                }
            }
        }
Esempio n. 14
0
        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;
                }
            }
        }
Esempio n. 15
0
        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;
                }
            }
        }
Esempio n. 16
0
        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;
                }
            }
        }