コード例 #1
0
        /// <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();
        }