From 9cada9d19d5a574dee17e2abe4c6ffa868ce5748 Mon Sep 17 00:00:00 2001 From: BruceChen Date: Sun, 29 Mar 2026 00:54:34 +0800 Subject: [PATCH] Refactor ConsoleIO and Program settings handling - Updated ConsoleIO to allow writing to the console when Backend is null, improving error handling. - Simplified settings write-back logic in Program.cs to ensure default settings are written correctly based on configuration results. --- MinecraftClient/ConsoleIO.cs | 4 ++-- MinecraftClient/Program.cs | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/MinecraftClient/ConsoleIO.cs b/MinecraftClient/ConsoleIO.cs index 485d5a90..8a77aaee 100644 --- a/MinecraftClient/ConsoleIO.cs +++ b/MinecraftClient/ConsoleIO.cs @@ -104,7 +104,7 @@ namespace MinecraftClient /// public static void WriteLine(string line) { - if (BasicIO) + if (BasicIO || Backend is null) Console.WriteLine(line); else Backend.WriteLine(line); @@ -137,7 +137,7 @@ namespace MinecraftClient { str = str.Replace('\n', ' '); } - if (BasicIO) + if (BasicIO || Backend is null) { if (BasicIO_NoColor) { diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index 759e69ed..c0e7710d 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -161,14 +161,7 @@ namespace MinecraftClient } if (configResult.NeedWriteDefault) - { Config.Main.Advanced.Language = Settings.GetDefaultGameLanguage(); - WriteBackSettings(false); - } - else if (configResult.Success) - { - WriteBackSettings(true); - } if (!Config.Main.Advanced.EnableSentry) _sentrySdk?.Dispose(); @@ -219,6 +212,8 @@ namespace MinecraftClient if (cfg.NeedWriteDefault) { + WriteBackSettings(false); + if (cfg.IsLegacyUpgrade) { ConsoleIO.WriteLineFormatted("§c" + Translations.mcc_use_new_config); @@ -243,6 +238,8 @@ namespace MinecraftClient } else { + WriteBackSettings(true); + if (!Config.Main.Advanced.Language.StartsWith("en")) ConsoleIO.WriteLine(string.Format(Translations.mcc_help_us_translate, Settings.TranslationProjectUrl)); }