diff --git a/Launcher-Core/Utils.cs b/Launcher-Core/Utils.cs index 13db5d3..724dff6 100644 --- a/Launcher-Core/Utils.cs +++ b/Launcher-Core/Utils.cs @@ -37,11 +37,13 @@ static public class Utils var loginHandler = JELoginHandlerBuilder.BuildDefault(); var authenticator = loginHandler.CreateAuthenticatorWithNewAccount(default); - authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode => - { - Console.WriteLine(deviceCode.Message); - return Task.CompletedTask; - })); + authenticator.AddMsalOAuth(app, msal => msal.SystemBrowser()); + // authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode => + // { + // Console.WriteLine(deviceCode.Message); + // return Task.CompletedTask; + // })); + // Im too lazy to implement this type of auth authenticator.AddMsalOAuth(app, msal => msal.Silent()); authenticator.AddXboxAuthForJE(xbox => xbox.Basic()); authenticator.AddJEAuthenticator(); diff --git a/Launcher-UI/ConfigManager.cs b/Launcher-UI/ConfigManager.cs index 8d07037..dfa34dd 100644 --- a/Launcher-UI/ConfigManager.cs +++ b/Launcher-UI/ConfigManager.cs @@ -62,7 +62,7 @@ public class ConfigManager TomlTable table = TOML.Parse(reader); // If config don't contains it means it's oudated or broken. - if (!table.TryGetNode(key, out var node)) + if (!IsValueExists(table, key)) { WriteInConfig(key, "NaN"); } @@ -73,33 +73,46 @@ public class ConfigManager if ((key == "tweaks-version") & (table[key] != currentTweaksVersion)) { Console.WriteLine("Warning! Tweaks version mismatch!"); + WriteInConfig("tweaks-version", "wrong-version"); } return table[key]; } - // Handling out-dated or broken toml files by filling with defaults - switch (key) - { - case "runtime-path": { WriteInConfig(key, defaultRuntime); return defaultRuntime; } - case "last-version-launched": { WriteInConfig(key, defaultVersion); return defaultVersion; } - case "nickname": { WriteInConfig(key, defaultNickname); return defaultNickname; } - - case "accsess-token": { WriteInConfig(key, defaultAccsessToken); return defaultAccsessToken; } - case "uuid": { WriteInConfig(key, defaultUuid); return defaultUuid; } - case "login-method": { WriteInConfig(key, defaultLoginType); return defaultLoginType; } - case "tweaks-version": - { - WriteInConfig(key, currentTweaksVersion); - Console.WriteLine("Warning! Can't locate tweaks version! Attempting auto recovery..."); - return "possibly broken"; - } - } - - return null; + return RepairConfig(key); } } + public static bool IsValueExists(TomlTable table, string key) + { + if (table.TryGetNode(key, out var _)) + return true; + return false; + } + + private static string? RepairConfig(string key) + { + Console.WriteLine($"Warning! Can't locate {key} in tweaks! Fallback to defaults!"); + // Handling out-dated or broken toml files by filling with defaults + switch (key) + { + case "runtime-path": { WriteInConfig(key, defaultRuntime); return defaultRuntime; } + case "last-version-launched": { WriteInConfig(key, defaultVersion); return defaultVersion; } + case "nickname": { WriteInConfig(key, defaultNickname); return defaultNickname; } + + case "accsess-token": { WriteInConfig(key, defaultAccsessToken); return defaultAccsessToken; } + case "uuid": { WriteInConfig(key, defaultUuid); return defaultUuid; } + case "login-method": { WriteInConfig(key, defaultLoginType); return defaultLoginType; } + case "tweaks-version": + { + WriteInConfig(key, currentTweaksVersion); + return "possibly broken"; + } + } + + return null; + } + public static void WriteInConfig(string key, dynamic value) { if (!File.Exists("tweaks.toml")) diff --git a/Launcher-UI/Views/SessionManagmentWindow.axaml b/Launcher-UI/Views/SessionManagmentWindow.axaml index 388e954..ca1c78e 100644 --- a/Launcher-UI/Views/SessionManagmentWindow.axaml +++ b/Launcher-UI/Views/SessionManagmentWindow.axaml @@ -16,7 +16,7 @@ MinHeight="400" MaxWidth="500" MaxHeight="400" - Background="#353535" + Background="#542434" > @@ -39,7 +39,7 @@ Text="Session nickname: " FontFamily="{StaticResource QuicksandFont}" /> - + @@ -47,7 +47,7 @@ Text="Session login method: " FontFamily="{StaticResource QuicksandFont}" /> - + @@ -55,7 +55,7 @@ Text="Session uuid: " FontFamily="{StaticResource QuicksandFont}" /> - + diff --git a/Launcher-UI/Views/SessionManagmentWindow.axaml.cs b/Launcher-UI/Views/SessionManagmentWindow.axaml.cs index 75f0e28..65e4555 100644 --- a/Launcher-UI/Views/SessionManagmentWindow.axaml.cs +++ b/Launcher-UI/Views/SessionManagmentWindow.axaml.cs @@ -29,6 +29,10 @@ public partial class SessionManagmentWindow : Window if (sender is not Button button) return; _mainWindowVM.Usernick = inputNickname.Text; + _mainWindowVM.LoginMethod = "offline"; // Swapping to offline method + _mainWindowVM.UUID = "offline"; // Just to be sure + _mainWindowVM.AccsesToken = "offline"; + Console.WriteLine($"Changing nickname to {inputNickname.Text}"); button.Content = "Saved!"; diff --git a/README.md b/README.md index 84ed532..f7baf20 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,4 @@ Licensed in MIT! - [Minecraft](https://www.minecraft.net) - [Cmllib](https://github.com/CmlLib/CmlLib.Core.git) - MIT license - [Avalonia UI](https://github.com/AvaloniaUI/Avalonia) - MIT license +- [Tommy](https://github.com/dezhidki/Tommy) - MIT license diff --git a/package/build-targz-linux-ui.sh b/package/build-targz-linux-ui.sh index dcac85e..08b87a1 100755 --- a/package/build-targz-linux-ui.sh +++ b/package/build-targz-linux-ui.sh @@ -1,7 +1,7 @@ cd ../Launcher-UI out_dir=../package/out/build -archieve_name=PlombirLinux-v1-1-0.tar.gz +archieve_name=PlombirLinux-v1-2-1.tar.gz rm -r $out_dir diff --git a/package/build-targz-osx-ui.sh b/package/build-targz-osx-ui.sh index 48b6b50..fb2ec93 100755 --- a/package/build-targz-osx-ui.sh +++ b/package/build-targz-osx-ui.sh @@ -1,7 +1,7 @@ cd ../Launcher-UI out_dir=../package/out/build -archieve_name=PlombirOSX-v1-1-0.tar.gz +archieve_name=PlombirOSX-v1-2-1.tar.gz rm -r $out_dir diff --git a/package/build-targz-win-ui.sh b/package/build-targz-win-ui.sh index ccbcd6e..a02f3d8 100755 --- a/package/build-targz-win-ui.sh +++ b/package/build-targz-win-ui.sh @@ -1,7 +1,7 @@ cd ../Launcher-UI out_dir=../package/out/build -archieve_name=PlombirWindows-v1-1-0.tar.gz +archieve_name=PlombirWindows-v1-2-1.tar.gz rm -r $out_dir