From c7e82a76c2e830f48fba9139f8aecc6648a751f1 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 4 Sep 2020 22:48:15 +0200 Subject: [PATCH] do not refresh token multiple times per session --- .../minosoft/util/mojang/api/MojangAccount.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/util/mojang/api/MojangAccount.java b/src/main/java/de/bixilon/minosoft/util/mojang/api/MojangAccount.java index f8fa9a0a9..674b7faad 100644 --- a/src/main/java/de/bixilon/minosoft/util/mojang/api/MojangAccount.java +++ b/src/main/java/de/bixilon/minosoft/util/mojang/api/MojangAccount.java @@ -27,6 +27,7 @@ public class MojangAccount { final String playerName; final String mojangUserName; String accessToken; + RefreshStates lastRefreshStatus; public MojangAccount(String username, JsonObject json) { this.accessToken = json.get("accessToken").getAsString(); @@ -52,15 +53,21 @@ public class MojangAccount { } public RefreshStates refreshToken() { + if (lastRefreshStatus != null) { + return lastRefreshStatus; + } String accessToken = MojangAuthentication.refresh(this.accessToken); if (accessToken == null) { - return RefreshStates.FAILED; + lastRefreshStatus = RefreshStates.FAILED; + return lastRefreshStatus; } if (accessToken.equals("")) { - return RefreshStates.ERROR; + lastRefreshStatus = RefreshStates.ERROR; + return lastRefreshStatus; } this.accessToken = accessToken; - return RefreshStates.SUCCESSFUL; + lastRefreshStatus = RefreshStates.SUCCESSFUL; + return lastRefreshStatus; } public UUID getUUID() {