diff --git a/launcher/src/main/java/com/skcraft/launcher/auth/MicrosoftLoginService.java b/launcher/src/main/java/com/skcraft/launcher/auth/MicrosoftLoginService.java index 3d418fc..476fd5d 100644 --- a/launcher/src/main/java/com/skcraft/launcher/auth/MicrosoftLoginService.java +++ b/launcher/src/main/java/com/skcraft/launcher/auth/MicrosoftLoginService.java @@ -38,7 +38,7 @@ form.add("code", code); }); - Profile session = performLogin(response.getAccessToken()); + Profile session = performLogin(response.getAccessToken(), null); session.setRefreshToken(response.getRefreshToken()); return session; @@ -52,7 +52,7 @@ form.add("refresh_token", savedSession.getRefreshToken()); }); - Profile session = performLogin(response.getAccessToken()); + Profile session = performLogin(response.getAccessToken(), savedSession); session.setRefreshToken(response.getRefreshToken()); return session; @@ -77,14 +77,19 @@ } } - private Profile performLogin(String microsoftToken) + private Profile performLogin(String microsoftToken, SavedSession previous) throws IOException, InterruptedException, AuthenticationException { XboxAuthorization xboxAuthorization = XboxTokenAuthorizer.authorizeWithXbox(microsoftToken); McAuthResponse auth = MinecraftServicesAuthorizer.authorizeWithMinecraft(xboxAuthorization); McProfileResponse profile = MinecraftServicesAuthorizer.getUserProfile(auth); Profile session = new Profile(auth, profile); - session.setAvatarImage(VisageSkinService.fetchSkinHead(profile.getUuid())); + if (previous != null && previous.getAvatarImage() != null) { + session.setAvatarImage(previous.getAvatarImage()); + } else { + session.setAvatarImage(VisageSkinService.fetchSkinHead(profile.getUuid())); + } + return session; } diff --git a/launcher/src/main/java/com/skcraft/launcher/auth/YggdrasilLoginService.java b/launcher/src/main/java/com/skcraft/launcher/auth/YggdrasilLoginService.java index e83248e..be78e63 100644 --- a/launcher/src/main/java/com/skcraft/launcher/auth/YggdrasilLoginService.java +++ b/launcher/src/main/java/com/skcraft/launcher/auth/YggdrasilLoginService.java @@ -58,10 +58,10 @@ AuthenticateResponse response = req.returnContent().asJson(AuthenticateResponse.class); Profile profile = response.getSelectedProfile(); - if (previous == null || previous.getAvatarImage() == null) { - profile.setAvatarImage(VisageSkinService.fetchSkinHead(profile.getUuid())); - } else { + if (previous != null && previous.getAvatarImage() != null) { profile.setAvatarImage(previous.getAvatarImage()); + } else { + profile.setAvatarImage(VisageSkinService.fetchSkinHead(profile.getUuid())); } return profile;