diff --git a/build.gradle b/build.gradle index 4dd58c1..813cf45 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'de.winniepat' -version = '0.0.3' +version = '0.0.4' java { @@ -17,7 +17,7 @@ java { repositories { mavenCentral() - maven { url = "https://maven.winniepat.de/repository/maven-releases/" } + maven {url = "https://repo.papermc.io/repository/maven-public/" } } dependencies { @@ -28,9 +28,6 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'com.google.code.gson:gson:2.13.1' - - - implementation("de.winniepat:winnie-lib:+") } tasks.named('test') { diff --git a/src/main/java/de/winniepat/licenselib/LicenseClient.java b/src/main/java/de/winniepat/licenselib/LicenseClient.java index d68e8a3..cec35cc 100644 --- a/src/main/java/de/winniepat/licenselib/LicenseClient.java +++ b/src/main/java/de/winniepat/licenselib/LicenseClient.java @@ -2,10 +2,12 @@ package de.winniepat.licenselib; import com.google.gson.Gson; import com.google.gson.JsonObject; -import de.winniepat.winnielib.http.Http; -import de.winniepat.winnielib.http.HttpResponse; +import java.net.URI; import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; /** * A client for checking plugin licenses against a license server. @@ -13,7 +15,9 @@ import java.net.http.HttpClient; public class LicenseClient { private static final Gson GSON = new Gson(); - private static final HttpClient HTTP_CLIENT = HttpClient.newHttpClient(); + private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(10)) + .build(); /** * Private constructor to prevent instantiation of this utility class. @@ -36,25 +40,41 @@ public class LicenseClient { String licenseKey, String serverId // can be null ) { + try { + JsonObject payload = new JsonObject(); + payload.addProperty("plugin", plugin); + payload.addProperty("licenseKey", licenseKey); - Http http = new Http(); + if (serverId != null) { + payload.addProperty("serverId", serverId); + } - JsonObject payload = new JsonObject(); - payload.addProperty("plugin", plugin); - payload.addProperty("licenseKey", licenseKey); + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(apiUrl)) + .timeout(Duration.ofSeconds(10)) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(GSON.toJson(payload))) + .build(); - if (serverId != null) { - payload.addProperty("serverId", serverId); + HttpResponse response = HTTP_CLIENT.send( + request, + HttpResponse.BodyHandlers.ofString() + ); + + JsonObject json = GSON.fromJson(response.body(), JsonObject.class); + + return new LicenseResult( + json.get("valid").getAsBoolean(), + json.get("status").getAsString(), + json.get("message").getAsString() + ); + } catch (Exception e) { + return new LicenseResult( + false, + "error", + e.getMessage() + ); } - - HttpResponse response = http.post(apiUrl, GSON.toJson(payload)); - JsonObject json = GSON.fromJson(response.body(), JsonObject.class); - - return new LicenseResult( - json.get("valid").getAsBoolean(), - json.get("status").getAsString(), - json.get("message").getAsString() - ); } /**