From c6f968851a573718670e671b5f992e761b1106c5 Mon Sep 17 00:00:00 2001 From: Braydon Date: Sat, 2 Dec 2023 03:52:57 -0500 Subject: [PATCH] Add plan & latest product ver to licenses --- .../java/me/braydon/example/LicenseClient.java | 14 ++++++++++++++ Example/src/main/java/me/braydon/example/Main.java | 4 +++- .../license/controller/LicenseController.java | 2 ++ .../java/me/braydon/license/dto/LicenseDTO.java | 11 +++++++++++ .../java/me/braydon/license/model/License.java | 10 ++++++++++ .../me/braydon/license/service/DiscordService.java | 3 ++- .../me/braydon/license/service/LicenseService.java | 2 ++ 7 files changed, 44 insertions(+), 2 deletions(-) diff --git a/Example/src/main/java/me/braydon/example/LicenseClient.java b/Example/src/main/java/me/braydon/example/LicenseClient.java index 6d120e8..3849023 100644 --- a/Example/src/main/java/me/braydon/example/LicenseClient.java +++ b/Example/src/main/java/me/braydon/example/LicenseClient.java @@ -141,6 +141,8 @@ public final class LicenseClient { JsonElement description = json.get("description"); JsonElement ownerSnowflake = json.get("ownerSnowflake"); JsonElement ownerName = json.get("ownerName"); + JsonElement plan = json.get("plan"); + JsonElement latestVersion = json.get("latestVersion"); // Parsing the expiration date if we have one JsonElement expires = json.get("expires"); @@ -155,6 +157,8 @@ public final class LicenseClient { description.isJsonNull() ? null : description.getAsString(), ownerSnowflake.isJsonNull() ? -1 : ownerSnowflake.getAsLong(), ownerName.isJsonNull() ? null : ownerName.getAsString(), + plan.getAsString(), + latestVersion.getAsString(), expires.isJsonNull() ? null : expiresDate ); } else { @@ -292,6 +296,16 @@ public final class LicenseClient { */ private String ownerName; + /** + * The plan for this license. + */ + @NonNull private String plan; + + /** + * The latest version of the product this license is for. + */ + @NonNull private String latestVersion; + /** * The optional expiration {@link Date} of the license. */ diff --git a/Example/src/main/java/me/braydon/example/Main.java b/Example/src/main/java/me/braydon/example/Main.java index bcf52b4..bb9f6bc 100644 --- a/Example/src/main/java/me/braydon/example/Main.java +++ b/Example/src/main/java/me/braydon/example/Main.java @@ -18,10 +18,12 @@ public final class Main { System.err.println("Invalid license: " + response.getError()); return; } + System.out.println("response = " + response); + // License is valid System.out.println("License is valid!"); if (response.getOwnerName() != null) { - System.out.println("Welcome " + response.getOwnerName() + "!"); + System.out.println("Welcome " + response.getOwnerName() + "! Your plan is " + response.getPlan() + " and the latest version is " + response.getLatestVersion()); } if (response.getDescription() != null) { System.out.println("Description: " + response.getDescription()); // License description diff --git a/src/main/java/me/braydon/license/controller/LicenseController.java b/src/main/java/me/braydon/license/controller/LicenseController.java index 3066237..f9e50e3 100644 --- a/src/main/java/me/braydon/license/controller/LicenseController.java +++ b/src/main/java/me/braydon/license/controller/LicenseController.java @@ -101,6 +101,8 @@ public final class LicenseController { license.getDescription(), license.getOwnerSnowflake(), license.getOwnerName(), + license.getPlan(), + license.getLatestVersion(), license.getExpires() )); } catch (APIException ex) { // Handle the exception diff --git a/src/main/java/me/braydon/license/dto/LicenseDTO.java b/src/main/java/me/braydon/license/dto/LicenseDTO.java index cf5014a..e2d15b2 100644 --- a/src/main/java/me/braydon/license/dto/LicenseDTO.java +++ b/src/main/java/me/braydon/license/dto/LicenseDTO.java @@ -7,6 +7,7 @@ package me.braydon.license.dto; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NonNull; import lombok.ToString; import me.braydon.license.model.License; @@ -40,6 +41,16 @@ public class LicenseDTO { */ private String ownerName; + /** + * The plan for this license. + */ + @NonNull private String plan; + + /** + * The latest version of the product this license is for. + */ + @NonNull private String latestVersion; + /** * The optional expiration {@link Date} of this license. */ diff --git a/src/main/java/me/braydon/license/model/License.java b/src/main/java/me/braydon/license/model/License.java index 3c5d2bb..53cd5b8 100644 --- a/src/main/java/me/braydon/license/model/License.java +++ b/src/main/java/me/braydon/license/model/License.java @@ -62,6 +62,16 @@ public class License { @Field("owner.name") private String ownerName; + /** + * The plan for this license. + */ + @NonNull private String plan; + + /** + * The latest version of the product this license is for. + */ + @NonNull private String latestVersion; + /** * The amount of uses this license has. */ diff --git a/src/main/java/me/braydon/license/service/DiscordService.java b/src/main/java/me/braydon/license/service/DiscordService.java index 9c69e61..4b22d4c 100644 --- a/src/main/java/me/braydon/license/service/DiscordService.java +++ b/src/main/java/me/braydon/license/service/DiscordService.java @@ -63,7 +63,7 @@ public final class DiscordService { /** * The version of this Springboot application. */ - @NonNull private String applicationVersion = "n/a"; + @NonNull private final String applicationVersion = "n/a"; /** * The salt to use for hashing license keys. @@ -317,6 +317,7 @@ public final class DiscordService { expires == -1L ? "Never" : "", true ) + .addField("Plan", license.getPlan(), true) .addField("Uses", String.valueOf(license.getUses()), true) .addField("Last Used", lastUsed == -1L ? "Never" : "", diff --git a/src/main/java/me/braydon/license/service/LicenseService.java b/src/main/java/me/braydon/license/service/LicenseService.java index a11c5c1..4f9fb8a 100644 --- a/src/main/java/me/braydon/license/service/LicenseService.java +++ b/src/main/java/me/braydon/license/service/LicenseService.java @@ -106,6 +106,8 @@ public final class LicenseService { license.setDescription(description); // Use the given description, if any license.setOwnerSnowflake(ownerSnowflake); license.setOwnerName(ownerName); + license.setPlan("Basic"); + license.setLatestVersion("1.0"); license.setIps(new HashSet<>()); license.setHwids(new HashSet<>()); license.setIpLimit(ipLimit); // Use the given IP limit