/// <summary> /// You start here /// </summary> /// <param name="args"></param> public static void Main(string[] args) { // Gets the version path var versionPath = MinecraftVersion.GetSystemVersionDirectory(); Console.WriteLine("Minecraft-Tab-Patcher"); Console.WriteLine("------------------------------------------------------"); Console.WriteLine("This tool can patch any existing minecraft version and"); Console.WriteLine("remove the ability to 'tab' to the next ui element. "); Console.WriteLine("The only purpose of this patch is to allow the user"); Console.WriteLine("to enter and exit the inventory with the 'tab' key."); Console.WriteLine("Since minecraft 1.13 'tab' will focus the new recipe"); Console.WriteLine("book when trying to close the inventory."); Console.WriteLine("------------------------------------------------------"); Console.WriteLine("Minecraft version directory:"); Console.WriteLine(versionPath); Console.WriteLine("------------------------------------------------------"); Console.WriteLine("Please continue at your own risk!"); Console.WriteLine("<Press any key to continue>"); Console.ReadKey(); Console.Clear(); var versions = MinecraftVersion.GetVersions(versionPath).OrderByDescending(v => v.ID).ToArray(); if (versions.Length == 0) { Console.WriteLine("Could not find any installed minecraft versions at:"); Console.WriteLine(versionPath); Console.ReadKey(); return; } int selection = 0; bool loop = true; do { Console.WriteLine("Select the minecraft version you want to patch."); Console.WriteLine("Use the arrow keys to navigate and press enter to confirm."); for (int i = 0; i < versions.Length; i++) { var version = versions[i]; if (selection == i) { Console.WriteLine(" -> {0}", version.ID); } else { Console.WriteLine(" {0}", version.ID); } } var key = Console.ReadKey(); switch (key.Key) { // Cancel case ConsoleKey.Escape: return; // Move selection down case ConsoleKey.DownArrow: selection = (selection + 1) % versions.Length; break; // Move selection up case ConsoleKey.UpArrow: selection = selection > 0 ? selection - 1 : versions.Length - 1; break; // Confirm case ConsoleKey.Enter: loop = false; break; } Console.Clear(); } while (loop); // The selected version MinecraftVersion selectedVersion = versions[selection]; // Patch the version var patchedVersion = Patch(selectedVersion, "tabFix"); Console.WriteLine(); Console.WriteLine("------------------------------------------------------"); Console.WriteLine("Open the minecraft launcher and create a new profile."); Console.WriteLine("Select the new version '{0}' and click 'save'.", patchedVersion.ID); Console.WriteLine("Now launch the game with your new profile selected!"); Console.WriteLine("Bye!"); Console.WriteLine("<Press any key to exit>"); Console.ReadKey(); }