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}"); + } + } }