From 2e52bdea39600cc93cf5eaa1b74f75a9d6e096b2 Mon Sep 17 00:00:00 2001 From: ORelio Date: Sun, 1 Mar 2020 19:59:12 +0100 Subject: [PATCH] Fix SessionCache.ini (Mojang now uses JWT) Session IDs from Mojang are now JWT instead of UUID --- MinecraftClient/Protocol/Session/SessionToken.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MinecraftClient/Protocol/Session/SessionToken.cs b/MinecraftClient/Protocol/Session/SessionToken.cs index 8e784673..bc13a183 100644 --- a/MinecraftClient/Protocol/Session/SessionToken.cs +++ b/MinecraftClient/Protocol/Session/SessionToken.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Text.RegularExpressions; using System.IO; namespace MinecraftClient.Protocol.Session @@ -7,6 +8,8 @@ namespace MinecraftClient.Protocol.Session [Serializable] public class SessionToken { + private static readonly Regex JwtRegex = new Regex("^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+$"); + public string ID { get; set; } public string PlayerName { get; set; } public string PlayerID { get; set; } @@ -38,7 +41,7 @@ namespace MinecraftClient.Protocol.Session session.ClientID = fields[3]; Guid temp; - if (!Guid.TryParseExact(session.ID, "N", out temp)) + if (!JwtRegex.IsMatch(session.ID)) throw new InvalidDataException("Invalid session ID"); if (!ChatBot.IsValidName(session.PlayerName)) throw new InvalidDataException("Invalid player name");