private async Task refreshVersions(string showVersion) { cbVersion.Items.Clear(); var versions = await launcher.GetAllVersionsAsync(); bool showVersionExist = false; foreach (var item in versions) { if (showVersion != null && item.Name == showVersion) { showVersionExist = true; } cbVersion.Items.Add(item.Name); } if (showVersion == null || !showVersionExist) { btnSetLastVersion_Click(null, null); } else { cbVersion.Text = showVersion; } }
async Task StartAsync(MSession session) // async version { var path = new MinecraftPath(); var launcher = new CMLauncher(path); System.Net.ServicePointManager.DefaultConnectionLimit = 256; var versions = await launcher.GetAllVersionsAsync(); foreach (var item in versions) { Console.WriteLine(item.Type + " " + item.Name); } launcher.FileChanged += Downloader_ChangeFile; launcher.ProgressChanged += Downloader_ChangeProgress; Console.WriteLine("input version (example: 1.12.2) : "); var versionName = Console.ReadLine(); var process = await launcher.CreateProcessAsync(versionName, new MLaunchOption { Session = session, MaximumRamMb = 1024 }); Console.WriteLine(process.StartInfo.Arguments); process.Start(); }
async Task Start(MSession session) { var path = MinecraftPath.GetOSDefaultPath(); var game = new MinecraftPath(path); // Create CMLauncher instance var launcher = new CMLauncher(game); // if you want to download with parallel downloader, add below code : System.Net.ServicePointManager.DefaultConnectionLimit = 256; launcher.ProgressChanged += Downloader_ChangeProgress; launcher.FileChanged += Downloader_ChangeFile; Console.WriteLine($"{launcher.MinecraftPath.BasePath} adresine kuruldu."); // Get all installed profiles and load all profiles from mojang server var versions = await launcher.GetAllVersionsAsync(); foreach (var item in versions) // Display all profiles { // You can filter snapshots and old versions to add if statement : if (item.MType == CmlLib.Core.Version.MVersionType.Release || item.MType == CmlLib.Core.Version.MVersionType.Custom) { List <string> list = new List <string> { item.Type + " " + item.Name }; list.ForEach(i => Console.Write("{0}\n", i)); } } var launchOption = new MLaunchOption { MaximumRamMb = 1024, Session = session, }; Console.WriteLine("Versiyon yazın (örnek 1.12.2): "); var process = await launcher.CreateProcessAsync(Console.ReadLine(), launchOption); //var process = launcher.CreateProcess("1.16.2", "33.0.5", launchOption); Console.WriteLine(process.StartInfo.Arguments); // Below codes are print game logs in Console. var processUtil = new CmlLib.Utils.ProcessUtil(process); processUtil.OutputReceived += (s, e) => Console.WriteLine(e); processUtil.StartWithEvents(); process.WaitForExit(); // or just start it without print logs // process.Start(); Console.ReadLine(); return; }
async Task TestAll(MSession session) { var path = MinecraftPath.GetOSDefaultPath(); var game = new MinecraftPath(path); var launcher = new CMLauncher(game); System.Net.ServicePointManager.DefaultConnectionLimit = 256; launcher.FileDownloader = new AsyncParallelDownloader(); launcher.ProgressChanged += Downloader_ChangeProgress; launcher.FileChanged += Downloader_ChangeFile; Console.WriteLine($"Initialized in {launcher.MinecraftPath.BasePath}"); var launchOption = new MLaunchOption { MaximumRamMb = 1024, Session = session, }; var versions = await launcher.GetAllVersionsAsync(); foreach (var item in versions) { Console.WriteLine(item.Type + " " + item.Name); if (!item.IsLocalVersion) { continue; } var process = launcher.CreateProcess(item.Name, launchOption); //var process = launcher.CreateProcess("1.16.2", "33.0.5", launchOption); Console.WriteLine(process.StartInfo.Arguments); // Below codes are print game logs in Console. var processUtil = new CmlLib.Utils.ProcessUtil(process); processUtil.OutputReceived += (s, e) => Console.WriteLine(e); processUtil.StartWithEvents(); Thread.Sleep(1000 * 15); if (process.HasExited) { Console.WriteLine("FAILED!!!!!!!!!"); Console.ReadLine(); } process.Kill(); process.WaitForExit(); } return; }
// this code is from README.md async Task QuickStart() { //var path = new MinecraftPath("game_directory_path"); var path = new MinecraftPath(); // use default directory var launcher = new CMLauncher(path); launcher.FileChanged += (e) => { Console.WriteLine("[{0}] {1} - {2}/{3}", e.FileKind.ToString(), e.FileName, e.ProgressedFileCount, e.TotalFileCount); }; launcher.ProgressChanged += (s, e) => { Console.WriteLine("{0}%", e.ProgressPercentage); }; var versions = await launcher.GetAllVersionsAsync(); foreach (var item in versions) { Console.WriteLine(item.Name); } var launchOption = new MLaunchOption { MaximumRamMb = 1024, Session = MSession.GetOfflineSession("hello"), // Login Session. ex) Session = MSession.GetOfflineSession("hello") //ScreenWidth = 1600, //ScreenHeigth = 900, //ServerIp = "mc.hypixel.net" }; // launch vanila var process = await launcher.CreateProcessAsync("1.15.2", launchOption); process.Start(); }