Example #1
0
        public void LaunchTestNew()
        {
            var minecraft = @"H:\Users\Tom\AppData\Roaming\.minecraft";
            var token     = "null";
            var settings  = Settings.CreateDefault();

            settings.Login = "******";

            var launcher = new ForgeLaunchWorkerNew(minecraft, settings.JavaPath, settings.Login, token, false);

            launcher.RegularLaunch((sender, args) =>
            {
                Assert.Fail("Ended Process");
            });

            Task.Delay(10 * 1000);

            Assert.IsTrue(true);
            //var bat = launcher.GetCmdArgs() + "\npause";
            //var batPath = Path.Combine(minecraft, "start.bat");
            //File.WriteAllText(batPath, bat);

            //var info = new ProcessStartInfo(batPath);
            //var proc = new Process { StartInfo = info };

            //var semaphore = new AutoResetEvent(false);

            //proc.Exited += (sender, args) =>
            //{
            //    Assert.Fail("Ended Process");
            //    semaphore.Set();
            //};

            //proc.Start();

            //semaphore.WaitOne(10 * 1000);

            //proc.Kill();
        }
Example #2
0
        public async Task <string> Launch(EventHandler <bool> onExitCallBack)
        {
            if (!IsFolderExists())
            {
                var donloadInfo = await SuccefullyDownloaded(DialogHostNames.WorkerDialogName);

                if (donloadInfo.Key)
                {
                    return("Ошибка в скачивании клиентских файлов");
                }

                if (!await SuccefullyUnzipped(DialogHostNames.WorkerDialogName,
                                              donloadInfo.Value))
                {
                    return("Ошибка при распаковке файлов");
                }
            }

            if (!IsRightMD5())
            {
                var canReinstall = await MessageService.ShowDialog(
                    "Хэш-сумма папки не совпдает, требуется переустановка.\nПродолжить?",
                    false);

                if (canReinstall == true)
                {
                    Directory.Delete(_baseFolder, true);
                    // заного запускаю метод
                    return(await Launch(onExitCallBack));
                }

                return("Хэш-сумма файлов не одинакова");
            }

            var tokenInfo = await GetAccessToken();

            if (!tokenInfo.Key)
            {
                return("Ошибка регистрации");
            }

            try
            {
                var launcher = new ForgeLaunchWorkerNew(_baseFolder,
                                                        _settings.JavaPath,
                                                        _login,
                                                        tokenInfo.Value,
                                                        _settings.OptimizeJava);

                launcher.RegularLaunch(onExitCallBack);

                Application.Current.MainWindow?.Hide();
            }
            catch (Exception e)
            {
                Trace.Write(e);
                return(e.Message);
            }

            return(null);
        }