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; } } }
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)); }
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()); } }
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; }
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); } }