diff --git a/MinecraftClient/Protocol/Handlers/Protocol16.cs b/MinecraftClient/Protocol/Handlers/Protocol16.cs index 411fae2e..39695e82 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol16.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol16.cs @@ -538,7 +538,8 @@ namespace MinecraftClient.Protocol.Handlers if (needCheckSession) { - if ((type == LoginType.mojang && ProtocolHandler.SessionCheck(uuid, sessionID, serverHash)) || (type == LoginType.yggdrasil && ProtocolHandler.YggdrasilSessionCheck(uuid, sessionID, serverHash))) + bool notYggdrasil = type == LoginType.mojang || type == LoginType.microsoft; + if ((notYggdrasil && ProtocolHandler.SessionCheck(uuid, sessionID, serverHash)) || (type == LoginType.yggdrasil && ProtocolHandler.YggdrasilSessionCheck(uuid, sessionID, serverHash))) { session.ServerIDhash = serverIDhash; session.ServerPublicKey = serverPublicKey; diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index ba942269..37114cde 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -2619,8 +2619,8 @@ namespace MinecraftClient.Protocol.Handlers if (needCheckSession) { string serverHash = CryptoHandler.GetServerHash(serverIDhash, serverPublicKey, secretKey); - - if ((type == LoginType.mojang && ProtocolHandler.SessionCheck(uuid, sessionID, serverHash) )|| (type == LoginType.yggdrasil && ProtocolHandler.YggdrasilSessionCheck(uuid, sessionID, serverHash))) + bool notYggdrasil = type == LoginType.mojang || type == LoginType.microsoft; + if ((notYggdrasil && ProtocolHandler.SessionCheck(uuid, sessionID, serverHash) )|| (type == LoginType.yggdrasil && ProtocolHandler.YggdrasilSessionCheck(uuid, sessionID, serverHash))) { session.ServerIDhash = serverIDhash; session.ServerPublicKey = serverPublicKey; diff --git a/MinecraftClient/Protocol/Session/SessionToken.cs b/MinecraftClient/Protocol/Session/SessionToken.cs index 66bcb568..ff965b70 100644 --- a/MinecraftClient/Protocol/Session/SessionToken.cs +++ b/MinecraftClient/Protocol/Session/SessionToken.cs @@ -39,7 +39,8 @@ namespace MinecraftClient.Protocol.Session return false; Crypto.CryptoHandler.ClientAESPrivateKey ??= Crypto.CryptoHandler.GenerateAESPrivateKey(); string serverHash = Crypto.CryptoHandler.GetServerHash(ServerIDhash, ServerPublicKey, Crypto.CryptoHandler.ClientAESPrivateKey); - if (type == LoginType.mojang && ProtocolHandler.SessionCheck(PlayerID, ID, serverHash)) + bool notYggdrasil = type == LoginType.mojang || type == LoginType.microsoft; + if (notYggdrasil && ProtocolHandler.SessionCheck(PlayerID, ID, serverHash)) return true; if (type == LoginType.yggdrasil && ProtocolHandler.YggdrasilSessionCheck(PlayerID, ID, serverHash)) return true;