File tree Expand file tree Collapse file tree 1 file changed +22
-6
lines changed
src/main/java/is/swan/mcmarketapi/request Expand file tree Collapse file tree 1 file changed +22
-6
lines changed Original file line number Diff line number Diff line change 1
1
package is .swan .mcmarketapi .request ;
2
2
3
3
import is .swan .mcmarketapi .Token ;
4
+ import is .swan .mcmarketapi .request .Request .Method ;
4
5
import is .swan .mcmarketapi .request .sorting .Throttler ;
5
6
import is .swan .mcmarketapi .utils .HTTPUtil ;
6
7
@@ -27,18 +28,33 @@ public Response send(Request request) {
27
28
}
28
29
29
30
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 ) {
33
33
try {
34
- Thread .sleep (response . getMillisecondsToWait () );
34
+ Thread .sleep (stallFor );
35
35
} catch (InterruptedException e ) {
36
36
e .printStackTrace ();
37
37
}
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 );
40
50
}
41
51
52
+ if (request .getMethod () == Method .GET ) {
53
+ throttler .resetRead ();
54
+ } else {
55
+ throttler .resetWrite ();
56
+ }
57
+
42
58
if (response .getError () != null ) {
43
59
return response ;
44
60
}
You can’t perform that action at this time.
0 commit comments