do not refresh token multiple times per session

This commit is contained in:
Bixilon 2020-09-04 22:48:15 +02:00
parent e622571a5d
commit c7e82a76c2
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -27,6 +27,7 @@ public class MojangAccount {
final String playerName; final String playerName;
final String mojangUserName; final String mojangUserName;
String accessToken; String accessToken;
RefreshStates lastRefreshStatus;
public MojangAccount(String username, JsonObject json) { public MojangAccount(String username, JsonObject json) {
this.accessToken = json.get("accessToken").getAsString(); this.accessToken = json.get("accessToken").getAsString();
@ -52,15 +53,21 @@ public class MojangAccount {
} }
public RefreshStates refreshToken() { public RefreshStates refreshToken() {
if (lastRefreshStatus != null) {
return lastRefreshStatus;
}
String accessToken = MojangAuthentication.refresh(this.accessToken); String accessToken = MojangAuthentication.refresh(this.accessToken);
if (accessToken == null) { if (accessToken == null) {
return RefreshStates.FAILED; lastRefreshStatus = RefreshStates.FAILED;
return lastRefreshStatus;
} }
if (accessToken.equals("")) { if (accessToken.equals("")) {
return RefreshStates.ERROR; lastRefreshStatus = RefreshStates.ERROR;
return lastRefreshStatus;
} }
this.accessToken = accessToken; this.accessToken = accessToken;
return RefreshStates.SUCCESSFUL; lastRefreshStatus = RefreshStates.SUCCESSFUL;
return lastRefreshStatus;
} }
public UUID getUUID() { public UUID getUUID() {