aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-01-20 15:50:36 -0500
committerGitHub <noreply@github.com>2024-01-20 15:50:36 -0500
commit301c82728132e76da9e93d0bd326f6c44593b5c0 (patch)
treeb4c09f9886e6aa0951a77c688c737594ccedeeeb /src
parentd5817947d1b3b64087a8b4592087037d02529e45 (diff)
downloadSkyblocker-301c82728132e76da9e93d0bd326f6c44593b5c0.tar.gz
Skyblocker-301c82728132e76da9e93d0bd326f6c44593b5c0.tar.bz2
Skyblocker-301c82728132e76da9e93d0bd326f6c44593b5c0.zip
Handle rate limits (#507)
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ApiUtils.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Http.java4
2 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java b/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java
index 0121f8ad..c63af3ba 100644
--- a/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/ApiUtils.java
@@ -31,6 +31,10 @@ public class ApiUtils {
* Multithreading is to be handled by the method caller
*/
public static String name2Uuid(String name) {
+ return name2Uuid(name, 0);
+ }
+
+ private static String name2Uuid(String name, int retries) {
Session session = MinecraftClient.getInstance().getSession();
if (session.getUsername().equals(name)) return UndashedUuid.toString(session.getUuidOrNull());
@@ -43,6 +47,10 @@ public class ApiUtils {
NAME_2_UUID_CACHE.put(name, uuid);
return uuid;
+ } else if (response.ratelimited() && retries < 3) {
+ Thread.sleep(800);
+
+ return name2Uuid(name, ++retries);
}
} catch (Exception e) {
LOGGER.error("[Skyblocker] Name to uuid lookup failed! Name: {}", name, e);
diff --git a/src/main/java/de/hysky/skyblocker/utils/Http.java b/src/main/java/de/hysky/skyblocker/utils/Http.java
index eced3c08..17079d15 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Http.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Http.java
@@ -134,6 +134,10 @@ public class Http {
return statusCode == 200;
}
+ public boolean ratelimited() {
+ return statusCode == 429;
+ }
+
public boolean cached() {
return cacheStatus.equals("HIT");
}