Skip to content

Commit 00d1fe6

Browse files
committed
Alter sendOrWait() to use Throttler class
1 parent f2ee19d commit 00d1fe6

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

src/main/java/is/swan/mcmarketapi/request/Client.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package is.swan.mcmarketapi.request;
22

33
import is.swan.mcmarketapi.Token;
4+
import is.swan.mcmarketapi.request.Request.Method;
45
import is.swan.mcmarketapi.request.sorting.Throttler;
56
import is.swan.mcmarketapi.utils.HTTPUtil;
67

@@ -27,18 +28,33 @@ public Response send(Request request) {
2728
}
2829

2930
public Response sendOrWait(Request request) {
30-
Response response = getResponse(request);
31-
32-
while (response.isRatelimited()) {
31+
long stallFor;
32+
while ((stallFor = this.throttler.stallFor(request.getMethod())) > 0) {
3333
try {
34-
Thread.sleep(response.getMillisecondsToWait());
34+
Thread.sleep(stallFor);
3535
} catch (InterruptedException e) {
3636
e.printStackTrace();
3737
}
38-
39-
response = getResponse(request);
38+
}
39+
40+
Response response = getResponse(request);
41+
42+
if (response.isRatelimited()) {
43+
if (request.getMethod() == Method.GET) {
44+
throttler.setRead(response.getMillisecondsToWait());
45+
} else {
46+
throttler.setWrite(response.getMillisecondsToWait());
47+
}
48+
49+
return sendOrWait(request);
4050
}
4151

52+
if (request.getMethod() == Method.GET) {
53+
throttler.resetRead();
54+
} else {
55+
throttler.resetWrite();
56+
}
57+
4258
if (response.getError() != null) {
4359
return response;
4460
}

0 commit comments

Comments
 (0)