From b781806fab048beec7b18011a2e225329c295b99 Mon Sep 17 00:00:00 2001 From: Max Nullov Date: Sun, 23 Feb 2025 18:58:27 +0300 Subject: [PATCH 01/10] wip auth for license minecraft support and removing unnecesary nugets --- Launcher-Core/Launcher-Core.csproj | 7 +++--- Launcher-Core/Launcher.cs | 2 ++ Launcher-Core/Program.cs | 6 ++++- Launcher-Core/Utils.cs | 35 +++++++++++++++++++++++++----- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/Launcher-Core/Launcher-Core.csproj b/Launcher-Core/Launcher-Core.csproj index 839f8a6..c4ab723 100644 --- a/Launcher-Core/Launcher-Core.csproj +++ b/Launcher-Core/Launcher-Core.csproj @@ -8,16 +8,17 @@ true true - false + false - + + - + diff --git a/Launcher-Core/Launcher.cs b/Launcher-Core/Launcher.cs index 511dcc3..16b2cdd 100644 --- a/Launcher-Core/Launcher.cs +++ b/Launcher-Core/Launcher.cs @@ -4,7 +4,9 @@ using System.Runtime.InteropServices; using System.Security.AccessControl; using CmlLib.Core; using CmlLib.Core.Auth; +using CmlLib.Core.Auth.Microsoft; using CmlLib.Core.ProcessBuilder; +using XboxAuthNet.Game.Msal; namespace Plombir; diff --git a/Launcher-Core/Program.cs b/Launcher-Core/Program.cs index 7a3ff86..c48c13e 100644 --- a/Launcher-Core/Program.cs +++ b/Launcher-Core/Program.cs @@ -2,8 +2,12 @@ namespace Plombir; sealed class Program { - public static void Main() + public static async Task Main() { Console.WriteLine("init: launcher"); + // var ln = new Launcher("test", "1.20.1"); + // var s = await Utils.GetLicensedSession(); + + // Console.WriteLine(s.CheckIsValid()); } } diff --git a/Launcher-Core/Utils.cs b/Launcher-Core/Utils.cs index 86cf813..dc57163 100644 --- a/Launcher-Core/Utils.cs +++ b/Launcher-Core/Utils.cs @@ -1,11 +1,9 @@ -using System.IO.Compression; using System; using System.IO; -using SharpCompress.Archives; -using SharpCompress.Common; -using SharpCompress.Readers; -using System.Diagnostics; using CmlLib.Core; +using CmlLib.Core.Auth; +using XboxAuthNet.Game.Msal; +using CmlLib.Core.Auth.Microsoft; namespace Plombir; @@ -27,6 +25,31 @@ static public class Utils } + /* + Method is working, but we need to wait for client-id approval. + */ + public static async Task? GetLicensedSession() + { + try + { + var app = await MsalClientHelper.BuildApplicationWithCache( + "d87c436c-aad0-46ea-b392-b53b3ed787b1" + ); + var loginHandler = JELoginHandlerBuilder.BuildDefault(); - + var authenticator = loginHandler.CreateAuthenticatorWithNewAccount(default); + authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode => + { + Console.WriteLine(deviceCode.Message); + return Task.CompletedTask; + })); + authenticator.AddXboxAuthForJE(xbox => xbox.Basic()); + authenticator.AddJEAuthenticator(); + return await authenticator.ExecuteForLauncherAsync(); + } + catch (Exception e) + { + throw new Exception($"Failed to authentificate! {e}"); + } + } } From cdd2bcfb69b4ee178c7f7897b5dc3e05cbbaa3c1 Mon Sep 17 00:00:00 2001 From: Max Nullov Date: Tue, 25 Feb 2025 18:31:43 +0300 Subject: [PATCH 02/10] Project cleanup Rearranging sprites + removing redundant files --- Launcher-UI/Assets/Sprites/account-logo.png | Bin 0 -> 570 bytes Launcher-UI/Assets/{ => Sprites}/background.jpg | Bin Launcher-UI/Assets/{ => Sprites}/cog.png | Bin Launcher-UI/Assets/{ => Sprites}/gitlab-logo.png | Bin Launcher-UI/Assets/{ => Sprites}/icon.png | Bin Launcher-UI/Assets/{ => Sprites}/title.png | Bin Launcher-UI/Assets/{ => Sprites}/toml-paper.png | Bin Launcher-UI/ViewModels/SettingsWindowViewModel.cs | 6 ------ .../ViewModels/VersionSelectorWindowViewModel.cs | 10 ---------- Launcher-UI/Views/LoadingWindow.axaml | 2 +- Launcher-UI/Views/SettingsWindow.axaml | 8 ++++---- Launcher-UI/Views/VersionSelectorWindow.axaml | 6 +++--- 12 files changed, 8 insertions(+), 24 deletions(-) create mode 100644 Launcher-UI/Assets/Sprites/account-logo.png rename Launcher-UI/Assets/{ => Sprites}/background.jpg (100%) rename Launcher-UI/Assets/{ => Sprites}/cog.png (100%) rename Launcher-UI/Assets/{ => Sprites}/gitlab-logo.png (100%) rename Launcher-UI/Assets/{ => Sprites}/icon.png (100%) rename Launcher-UI/Assets/{ => Sprites}/title.png (100%) rename Launcher-UI/Assets/{ => Sprites}/toml-paper.png (100%) delete mode 100644 Launcher-UI/ViewModels/SettingsWindowViewModel.cs delete mode 100644 Launcher-UI/ViewModels/VersionSelectorWindowViewModel.cs diff --git a/Launcher-UI/Assets/Sprites/account-logo.png b/Launcher-UI/Assets/Sprites/account-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b4aeee240313502247353d2fbbb63d1b47005db5 GIT binary patch literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I4M=vMPuFE&U}E%iaSW-L^Y-pRUnWO}wu@II z7S~2JsB>@NpM7Qb%n7QD`({4eYurAyX66s}GD|+7Mr5$#!P0#V)m8t0SpB|qzdG(X z>+*a5=f6K+9q;~Z>pq5gvl%=&Crn}R%r$lrlaNWby=qX%G)YK7lMzU)RCPb$*8F%) zZhNONNDWxw-mBsT&bxW~CSJV1?McI*^PC=D4NF+4Oq5l*yniuq>u#HE<=w|W_E|7O z?B<+s#q9r`yf4gcxBnSD>_9jQ=z2FX2{nIH3%5CN*JRBWEIRr?VrErK&l@8jB=KK@ zn_leLu{HO27s3QzQzx+>zplKQ_Pc62LNrzR$b*U*E0O(w_FG3>^W$%B?_ZkCZ?J?r zEX2}@r|+D};Ugr5$ErQ*DJA?(zg^@G_r5HUVNy|Z2x4MEj=*)F*uxBTo-dzXzY!$t M>FVdQ&MBb@0G0CD*#H0l literal 0 HcmV?d00001 diff --git a/Launcher-UI/Assets/background.jpg b/Launcher-UI/Assets/Sprites/background.jpg similarity index 100% rename from Launcher-UI/Assets/background.jpg rename to Launcher-UI/Assets/Sprites/background.jpg diff --git a/Launcher-UI/Assets/cog.png b/Launcher-UI/Assets/Sprites/cog.png similarity index 100% rename from Launcher-UI/Assets/cog.png rename to Launcher-UI/Assets/Sprites/cog.png diff --git a/Launcher-UI/Assets/gitlab-logo.png b/Launcher-UI/Assets/Sprites/gitlab-logo.png similarity index 100% rename from Launcher-UI/Assets/gitlab-logo.png rename to Launcher-UI/Assets/Sprites/gitlab-logo.png diff --git a/Launcher-UI/Assets/icon.png b/Launcher-UI/Assets/Sprites/icon.png similarity index 100% rename from Launcher-UI/Assets/icon.png rename to Launcher-UI/Assets/Sprites/icon.png diff --git a/Launcher-UI/Assets/title.png b/Launcher-UI/Assets/Sprites/title.png similarity index 100% rename from Launcher-UI/Assets/title.png rename to Launcher-UI/Assets/Sprites/title.png diff --git a/Launcher-UI/Assets/toml-paper.png b/Launcher-UI/Assets/Sprites/toml-paper.png similarity index 100% rename from Launcher-UI/Assets/toml-paper.png rename to Launcher-UI/Assets/Sprites/toml-paper.png diff --git a/Launcher-UI/ViewModels/SettingsWindowViewModel.cs b/Launcher-UI/ViewModels/SettingsWindowViewModel.cs deleted file mode 100644 index 3848b0f..0000000 --- a/Launcher-UI/ViewModels/SettingsWindowViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace LauncherGUI.ViewModels; - -public partial class SettingsWindowViewModel : ViewModelBase -{ - // I save launcher data mostly in MainWindowViewModel. -} diff --git a/Launcher-UI/ViewModels/VersionSelectorWindowViewModel.cs b/Launcher-UI/ViewModels/VersionSelectorWindowViewModel.cs deleted file mode 100644 index 5c26947..0000000 --- a/Launcher-UI/ViewModels/VersionSelectorWindowViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; -using Plombir; -using LauncherGUI.ViewModels; - -namespace LauncherGUI.ViewModels; - -public partial class VersionSelectorWindowViewModel : ViewModelBase -{ - // I save launcher data mostly in MainWindowViewModel. -} diff --git a/Launcher-UI/Views/LoadingWindow.axaml b/Launcher-UI/Views/LoadingWindow.axaml index 4c287ab..468abbd 100644 --- a/Launcher-UI/Views/LoadingWindow.axaml +++ b/Launcher-UI/Views/LoadingWindow.axaml @@ -9,7 +9,7 @@ d:DesignHeight="200" x:Class="LauncherGUI.Views.LoadingWindow" x:DataType="vm:LoadingWindowViewModel" - Icon="/Assets/icon.png" + Icon="/Assets/Sprites/icon.png" Title="Loading" RequestedThemeVariant="Dark" Width="400" diff --git a/Launcher-UI/Views/SettingsWindow.axaml b/Launcher-UI/Views/SettingsWindow.axaml index 6b0fddd..f96f1c2 100644 --- a/Launcher-UI/Views/SettingsWindow.axaml +++ b/Launcher-UI/Views/SettingsWindow.axaml @@ -1,15 +1,15 @@ - diff --git a/Launcher-UI/Views/VersionSelectorWindow.axaml b/Launcher-UI/Views/VersionSelectorWindow.axaml index f55f812..781d8b1 100644 --- a/Launcher-UI/Views/VersionSelectorWindow.axaml +++ b/Launcher-UI/Views/VersionSelectorWindow.axaml @@ -1,12 +1,12 @@ Date: Tue, 25 Feb 2025 18:32:10 +0300 Subject: [PATCH 03/10] Licensed session support --- Launcher-Core/Launcher.cs | 2 +- Launcher-Core/Utils.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Launcher-Core/Launcher.cs b/Launcher-Core/Launcher.cs index 16b2cdd..3a36263 100644 --- a/Launcher-Core/Launcher.cs +++ b/Launcher-Core/Launcher.cs @@ -43,7 +43,7 @@ public class Launcher DownloadProgress = (int)(args.ProgressedBytes * 100 / args.TotalBytes); }; - DownloadStatus = "Installing minecraft..."; + DownloadStatus = "Getting the assets from Mojang..."; Console.WriteLine(DownloadStatus); await _mcLauncher.InstallAsync(_version); DownloadStatus = "Finished!"; diff --git a/Launcher-Core/Utils.cs b/Launcher-Core/Utils.cs index dc57163..8308af8 100644 --- a/Launcher-Core/Utils.cs +++ b/Launcher-Core/Utils.cs @@ -26,7 +26,7 @@ static public class Utils } /* - Method is working, but we need to wait for client-id approval. + ID is approved, we are so ready. */ public static async Task? GetLicensedSession() { From 1e725f593313e3e0d3b5fcbc992a5859594f7acf Mon Sep 17 00:00:00 2001 From: Max Nullov Date: Tue, 25 Feb 2025 18:32:24 +0300 Subject: [PATCH 04/10] UI update for better session control support --- Launcher-UI/Views/MainWindow.axaml | 99 +++++++++++++++++---------- Launcher-UI/Views/MainWindow.axaml.cs | 8 ++- 2 files changed, 69 insertions(+), 38 deletions(-) diff --git a/Launcher-UI/Views/MainWindow.axaml b/Launcher-UI/Views/MainWindow.axaml index 20ea829..c714306 100644 --- a/Launcher-UI/Views/MainWindow.axaml +++ b/Launcher-UI/Views/MainWindow.axaml @@ -6,7 +6,7 @@ mc:Ignorable="d" d:DesignWidth="750" d:DesignHeight="500" x:Class="LauncherGUI.Views.MainWindow" x:DataType="vm:MainWindowViewModel" - Icon="/Assets/icon.png" + Icon="/Assets/Sprites/icon.png" Title="PlombirLauncher" RequestedThemeVariant="Dark" Width="750" Height="500" @@ -14,14 +14,8 @@ MaxWidth="750" MaxHeight="500"> - + - - - - - @@ -33,7 +27,7 @@ - + @@ -43,13 +37,15 @@ Padding="10" Margin="3" CornerRadius="10"> - + + - + - + + + - -