コード例 #1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var           ver     = (KMCCC.Launcher.Version)comboBox1.SelectedItem;
            LaunchOptions options = new LaunchOptions
            {
                JavaPath  = javapath.Text,
                Version   = ver,              //Ver为Versions里你要启动的版本名字
                MaxMemory = 1024,             //最大内存,int类型
                //Authenticator = new OfflineAuthenticator("Xiao_yejun"), //离线启动
                Mode = LaunchMode.MCLauncher, //启动模式,这个我会在后面解释有哪几种
                Size = new WindowSize {
                    Height = 768, Width = 1280
                }                                                    //设置窗口大小,可以不要
            };

            if ((bool)zb.IsChecked)
            {
                options.Authenticator = new YggdrasilLogin(youxiang.Text, mima.Text, false);
            }
            else
            {
                options.Authenticator = new OfflineAuthenticator("Xiao_yejun"); //离线启动
            }

            var result = Core.Launch(options);



            //Authenticator = new YggdrasilLogin("邮箱", "密码", true),
            //case ErrorType.AuthenticationFailed:
            //MessageBox.Show(this, "正版验证失败!请检查你的账号密码", "账号错误\n详细信息:" + result.ErrorMessage,MessageBoxButtons.OK,MessageBoxIcon.Error);
            if (!result.Success)
            {
                switch (result.ErrorType)
                {
                case ErrorType.AuthenticationFailed:
                    MessageBox.Show(this, "正版验证失败!请检查你的账号密码", "账号错误\n详细信息:" + result.ErrorMessage);
                    break;

                case ErrorType.NoJAVA:
                    MessageBox.Show(result.ErrorMessage + "你没有java哦");
                    break;

                case ErrorType.UncompressingFailed:
                    MessageBox.Show(result.ErrorMessage + "文件损坏了呢");
                    break;

                default:
                    MessageBox.Show(result.ErrorMessage + "启动错误");
                    break;
                }
            }
        }
コード例 #2
0
        public LaunchResult Launch(LaunchOptionBase launchOption, params Action <MinecraftLaunchArguments>[] argumentsOperators)
        {
            if (UserAuthenticator == null)
            {
                FailedResult.ErrorType    = ErrorType.AuthenticationFailed;
                FailedResult.ErrorMessage = "User authenticator no set";
                Console.WriteLine("ERROR: User authenticator no set");
                return(FailedResult);
            }
            if (launchOption == null)
            {
                Console.WriteLine("ERROR: Launch message is null");
                FailedResult.ErrorMessage = "Launch message is null";
                return(FailedResult);
            }

            Core.JavaPath = launchOption.javaExt;

            //LaunchOptions in KMCCC, different with LaunchOption in OneMCL.Core
            LaunchOptions options = new LaunchOptions()
            {
                Version       = Core.GetVersion(launchOption.versionId),
                Authenticator = UserAuthenticator,
                GameDirPath   = string.IsNullOrEmpty(launchOption.gameDir) ? Core.GameRootPath : launchOption.gameDir,
            };

            Console.WriteLine("Launching...");

            int argsCount = 0;

            if (argumentsOperators != null)
            {
                argsCount = argumentsOperators.Length;
            }
            Action <MinecraftLaunchArguments>[] argsOpt = new Action <MinecraftLaunchArguments> [argsCount + 1];
            argsOpt[0] = (Action <MinecraftLaunchArguments>)(args =>
            {
                args.AdvencedArguments.Add(launchOption.javaArgs);
                System.Version osVersion = Environment.OSVersion.Version;
                args.AdvencedArguments.Add("-Dos.name=\"" + GetSystemVersionName(osVersion.Major, osVersion.Minor) + "\"");
                args.AdvencedArguments.Add("-Dos.version=" + osVersion.Major + "." + osVersion.Minor);
                args.AdvencedArguments.Add("-Dminecraft.launcher.brand=one-minecraft-launcher");
                //args.AdvencedArguments.Add("-Dminecraft.launcher.version=");
                args.AdvencedArguments.Add("-Dminecraft.client.jar=" + Core.GetVersionJarPath(options.Version));
                //args.AdvencedArguments.Add("-Dlog4j.configurationFile=");
            });
            argumentsOperators?.CopyTo(argsOpt, 1);
            return(Core.Launch(options, argsOpt));
        }
コード例 #3
0
        public static void Main(string[] args)
        {
            var name = "PixelClient";
            var lb   = new LibrariesLocator(Locator);

            lb.GetNatives(name).ForEach(x =>
            {
                Console.WriteLine(x.Name);
            });

            var la = new LauncherArguments
            {
                Authentication = "awd",

                MaxMemorySize    = "6G",
                LauncherName     = "AHpxLauncher",
                MinecraftLocator = Locator
            };
            var savePath = $@"C:\Users\ahpx\Desktop\LOG_{$"{DateTime.Now:T}".Replace(':','-')}.txt";

            Console.WriteLine(la.GetArgument(name));
            File.WriteAllText(savePath, la.GetArgument(name));
            Process.Start(savePath);

            var lc = new LauncherCore
            {
                LauncherArguments = la,
                JavaPath          = @"C:\Program Files\Java\jdk1.8.0_241\bin\javaw.exe"
            };

            var pro = lc.Launch(name);

            while (pro.StandardOutput.ReadLine() != null)
            {
                Console.WriteLine(pro.StandardOutput.ReadLine());
            }
        }
コード例 #4
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            var ver = vers.Last();

            Check();
            Core.JavaPath = Config.Java;
            var result = Core.Launch(new LaunchOptions
            {
                Version       = ver,                                   //Ver为Versions里你要启动的版本名字
                MaxMemory     = Config.maxRAM,                         //最大内存,int类型
                Authenticator = new OfflineAuthenticator(Config.nick), //离线启动,ZhaiSoul那儿为你要设置的游戏名
                                                                       //Authenticator = new YggdrasilLogin("邮箱", "密码", true), // 正版启动,最后一个为是否twitch登录
                Mode = LaunchMode.BmclMode,                            //启动模式,这个我会在后面解释有哪几种
                                                                       // Server = new ServerInfo { Address = "119.10.47.168", Port = 25565 }, //设置启动游戏后,自动加入指定IP的服务器,可以不要
                                                                       //Size = new WindowSize { Height = 768, Width = 1280 } //设置窗口大小,可以不要
            });

            if (result == null)
            {
                MessageBox.Show("启动出错!");
            }

            timer1.Enabled = true;
        }
コード例 #5
0
ファイル: Launch.cs プロジェクト: Tominous/ModernMinecraft
        public static void VLW(Window window, string username, string password, string memory, string path, bool fullScreen)
        {
            LauncherCore core   = LauncherCore.Create();
            var          option = new LaunchOptions
            {
                Version   = core.GetVersion(VersionName),
                MaxMemory = Convert.ToInt32(memory),
                Mode      = LaunchMode.MCLauncher,
                Size      = new WindowSize
                {
                    Height = (ushort?)(Gdk.Screen.Default.Height / 2),
                    Width  = (ushort?)(Gdk.Screen.Default.Width / 2)
                }
            };

            if (fullScreen)
            {
                option.Size.FullScreen = true;
            }
#if ENABLE_TONGYI_AUTHENTICATION
            option.AgentPath     = "nide8auth.jar=" + ServerTongyiStr; // Chinese Third-party Authentication System: Minecraft 统一通行证
            option.Authenticator = new YggdrasilLogin(username, password, true, null, "https://auth2.nide8.com:233/" + ServerTongyiStr + "/authserver");
#else
            option.Authenticator = new OfflineAuthenticator(username);
#endif
            if (ServerIP.Length != 0)
            {
                option.Server = new ServerInfo {
                    Address = ServerIP, Port = ServerPort
                }
            }
            ;
            var result = core.Launch(option);
            if (!result.Success)
            {
                MessageDialog messageDialog;
                switch (result.ErrorType)
                {
                case ErrorType.NoJAVA:
                    messageDialog = new MessageDialog(window, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Java Error, try to reinstall the client.")
                    {
                        Title = "Java Error"
                    };
                    break;

                case ErrorType.AuthenticationFailed:
                    messageDialog = new MessageDialog(window, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Please check your username and password.")
                    {
                        Title = "Profile Error"
                    };
                    break;

                case ErrorType.UncompressingFailed:
                    messageDialog = new MessageDialog(window, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Decompressing Failed!\n\nCheck your client or reinstall.")
                    {
                        Title = "Decompression Failure"
                    };
                    break;

                default:
                    messageDialog = new MessageDialog(window, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, result.ErrorMessage + "\n" + (result.Exception == null ? string.Empty : result.Exception.StackTrace))
                    {
                        Title = "Unknown Error"
                    };
                    break;
                }
                messageDialog.Run();
            }
            Thread.Sleep(50);
        }
    }