1
1
package com .kamesuta .bungeepteropower ;
2
2
3
- import okhttp3 .* ;
4
- import org . jetbrains . annotations . NotNull ;
5
-
6
- import java .io . IOException ;
3
+ import java . net . URI ;
4
+ import java . net . http . HttpClient ;
5
+ import java . net . http . HttpRequest ;
6
+ import java .net . http . HttpResponse ;
7
7
import java .util .concurrent .CompletableFuture ;
8
8
import java .util .logging .Level ;
9
9
@@ -29,42 +29,39 @@ public static CompletableFuture<Void> sendPowerSignal(String serverName, String
29
29
// Create a path
30
30
String path = "/api/client/servers/" + pterodactylServerId + "/power" ;
31
31
32
- OkHttpClient client = new OkHttpClient ();
32
+ HttpClient client = HttpClient . newHttpClient ();
33
33
34
34
// Create a form body to send power signal
35
- FormBody .Builder formBuilder = new FormBody .Builder ();
36
- formBuilder .add ("signal" , signal .signal );
37
- RequestBody formBody = formBuilder .build ();
35
+ String formBody = "signal=" + signal .signal ;
38
36
39
37
// Create a request
40
- Request request = new Request .Builder ()
41
- .url (plugin .config .pterodactylUrl .resolve (path ).toString ())
42
- .post (formBody )
43
- .addHeader ("Authorization" , "Bearer " + plugin .config .pterodactylToken )
38
+ HttpRequest request = HttpRequest .newBuilder ()
39
+ .uri (URI .create (plugin .config .pterodactylUrl .resolve (path ).toString ()))
40
+ .header ("Content-Type" , "application/x-www-form-urlencoded" )
41
+ .header ("Authorization" , "Bearer " + plugin .config .pterodactylToken )
42
+ .POST (HttpRequest .BodyPublishers .ofString (formBody ))
44
43
.build ();
45
44
46
45
// Execute request and register a callback
47
46
CompletableFuture <Void > future = new CompletableFuture <>();
48
- client .newCall (request ).enqueue (new Callback () {
49
- @ Override
50
- public void onFailure (@ NotNull Call call , @ NotNull IOException e ) {
51
- logger .log (Level .WARNING , "Failed to " + signal .signal + " server: " + serverName , e );
52
- future .completeExceptionally (e );
53
- }
47
+ client .sendAsync (request , HttpResponse .BodyHandlers .ofString ())
48
+ .thenApply (HttpResponse ::statusCode )
49
+ .thenAccept (code -> {
50
+ if (code >= 200 && code < 300 ) {
51
+ logger .info ("Successfully " + signal .signal + " server: " + serverName );
52
+ future .complete (null );
53
+ } else {
54
+ String message = "Failed to " + signal .signal + " server: " + serverName + ". Response code: " + code ;
55
+ logger .warning (message );
56
+ future .completeExceptionally (new RuntimeException (message ));
57
+ }
58
+ })
59
+ .exceptionally (e -> {
60
+ logger .log (Level .WARNING , "Failed to " + signal .signal + " server: " + serverName , e );
61
+ future .completeExceptionally (e );
62
+ return null ;
63
+ });
54
64
55
- @ Override
56
- public void onResponse (@ NotNull Call call , @ NotNull Response response ) {
57
- if (response .isSuccessful ()) {
58
- logger .info ("Successfully " + signal .signal + " server: " + serverName );
59
- future .complete (null );
60
- } else {
61
- String message = "Failed to " + signal .signal + " server: " + serverName + ". Response: " + response ;
62
- logger .warning (message );
63
- future .completeExceptionally (new RuntimeException (message ));
64
- }
65
- response .close ();
66
- }
67
- });
68
65
return future ;
69
66
}
70
67
0 commit comments