From 4d0f0be59c41cfc12d757b9f91c5adcb045a67ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maurice=20Eisenbl=C3=A4tter?= Date: Thu, 21 Aug 2025 15:22:11 +0200 Subject: [PATCH 1/4] feat: only create cache directory if disk cache is enabled --- .../config/OrebfuscatorCacheConfig.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/config/OrebfuscatorCacheConfig.java b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/config/OrebfuscatorCacheConfig.java index f6b7796c..5b8f26dc 100644 --- a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/config/OrebfuscatorCacheConfig.java +++ b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/config/OrebfuscatorCacheConfig.java @@ -67,14 +67,16 @@ public void deserialize(ConfigurationSection section, ConfigParsingContext conte } // try create diskCache.directory - OFCLogger.debug("Using '" + this.baseDirectory.toAbsolutePath() + "' as chunk cache path"); - try { - if (Files.notExists(this.baseDirectory)) { - Files.createDirectories(this.baseDirectory); + if (this.enableDiskCacheValue) { + OFCLogger.debug("Using '" + this.baseDirectory.toAbsolutePath() + "' as chunk cache path"); + try { + if (Files.notExists(this.baseDirectory)) { + Files.createDirectories(this.baseDirectory); + } + } catch (IOException e) { + diskContext.error(String.format("can't create cache directory {%s}", e)); + e.printStackTrace(); } - } catch (IOException e) { - diskContext.error(String.format("can't create cache directory {%s}", e)); - e.printStackTrace(); } // disable features if their config sections contain errors From b4009d87174c7b48adf90d2e4685f1a895752229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maurice=20Eisenbl=C3=A4tter?= Date: Thu, 21 Aug 2025 16:11:54 +0200 Subject: [PATCH 2/4] fix: NPE in update system --- .../net/imprex/orebfuscator/UpdateSystem.java | 30 ++++++++++--------- .../util/AbstractHttpService.java | 15 ++++++---- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/UpdateSystem.java b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/UpdateSystem.java index 43fe1ee8..9e0d58f6 100644 --- a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/UpdateSystem.java +++ b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/UpdateSystem.java @@ -67,20 +67,22 @@ private CompletableFuture> requestLatestVersion() { } var uri = String.format(API_URI, "bukkit", MinecraftVersion.current()); - return HTTP.sendAsync(request(uri).build(), json(ModrinthVersion[].class)).thenApply(request -> { - var version = Version.parse(installedVersion); - var latestVersion = Arrays.stream(request.body()) - .filter(e -> Objects.equals(e.versionType, "release")) - .filter(e -> Objects.equals(e.status, "listed")) - .sorted(Comparator.reverseOrder()) - .findFirst(); - - latestVersion.ifPresentOrElse( - v -> OFCLogger.debug("UpdateSystem - Fetched latest version " + v.version), - () -> OFCLogger.debug("UpdateSystem - Couldn't fetch latest version")); - - return latestVersion.map(v -> version.isBelow(v.version) ? v : null); - }).exceptionally(throwable -> { + return HTTP.sendAsync(request(uri).build(), optionalJson(ModrinthVersion[].class)).thenApply(response -> + response.body().flatMap(body -> { + var version = Version.parse(installedVersion); + var latestVersion = Arrays.stream(body) + .filter(e -> Objects.equals(e.versionType, "release")) + .filter(e -> Objects.equals(e.status, "listed")) + .sorted(Comparator.reverseOrder()) + .findFirst(); + + latestVersion.ifPresentOrElse( + v -> OFCLogger.debug("UpdateSystem - Fetched latest version " + v.version), + () -> OFCLogger.debug("UpdateSystem - Couldn't fetch latest version")); + + return latestVersion.map(v -> version.isBelow(v.version) ? v : null); + }) + ).exceptionally(throwable -> { OFCLogger.log(Level.WARNING, "UpdateSystem - Unable to fetch latest version", throwable); return Optional.empty(); }); diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java index 62ba083d..3062fe0b 100644 --- a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java +++ b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java @@ -2,16 +2,20 @@ import java.io.IOException; import java.io.InputStreamReader; +import java.io.UncheckedIOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse.BodyHandler; import java.net.http.HttpResponse.BodySubscribers; +import java.nio.charset.StandardCharsets; +import java.util.Optional; import org.bukkit.plugin.PluginDescriptionFile; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; import net.imprex.orebfuscator.Orebfuscator; @@ -36,16 +40,15 @@ protected HttpRequest.Builder request(String url) { .header("Accept", "application/json"); } - protected static BodyHandler json(Class target) { + protected static BodyHandler> optionalJson(Class target) { return (responseInfo) -> responseInfo.statusCode() == 200 ? BodySubscribers.mapping(BodySubscribers.ofInputStream(), inputStream -> { - try (InputStreamReader reader = new InputStreamReader(inputStream)) { - return GSON.fromJson(new InputStreamReader(inputStream), target); + try (InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8)) { + return Optional.ofNullable(GSON.fromJson(reader, target)); } catch (IOException e) { - e.printStackTrace(); - return null; + throw new UncheckedIOException("I/O while reading JSON", e); } }) - : BodySubscribers.replacing(null); + : BodySubscribers.replacing(Optional.empty()); } } From 00065377ba694b5e4e07af7921f2da5ee68b78df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maurice=20Eisenbl=C3=A4tter?= Date: Thu, 21 Aug 2025 16:20:09 +0200 Subject: [PATCH 3/4] chore: improve user agent discoverability --- .../java/net/imprex/orebfuscator/util/AbstractHttpService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java index 3062fe0b..60b99921 100644 --- a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java +++ b/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/AbstractHttpService.java @@ -15,7 +15,6 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonParseException; import net.imprex.orebfuscator.Orebfuscator; @@ -31,7 +30,7 @@ public abstract class AbstractHttpService { public AbstractHttpService(Orebfuscator orebfuscator) { PluginDescriptionFile plugin = orebfuscator.getDescription(); - this.userAgent = String.format("%s/%s", plugin.getName(), plugin.getVersion()); + this.userAgent = String.format("Imprex-Development/%s/%s", plugin.getName(), plugin.getVersion()); } protected HttpRequest.Builder request(String url) { From d7b963d58b9ff12307f2d81b6d444a23ea3c4044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maurice=20Eisenbl=C3=A4tter?= Date: Thu, 21 Aug 2025 16:26:35 +0200 Subject: [PATCH 4/4] chore: migrate repo.dmulloy2.net to maven central --- .../orebfuscator-nms-v1_16_R1/pom.xml | 2 +- .../orebfuscator-nms-v1_16_R2/pom.xml | 2 +- .../orebfuscator-nms-v1_16_R3/pom.xml | 2 +- .../orebfuscator-nms-v1_17_R1/pom.xml | 2 +- .../orebfuscator-nms-v1_18_R1/pom.xml | 2 +- .../orebfuscator-nms-v1_18_R2/pom.xml | 2 +- orebfuscator-plugin/pom.xml | 2 +- pom.xml | 18 ++++++++---------- 8 files changed, 15 insertions(+), 17 deletions(-) diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_16_R1/pom.xml index e45980fc..e2702857 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_16_R1/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_16_R1/pom.xml @@ -20,7 +20,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_16_R2/pom.xml index fea19580..8df99044 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_16_R2/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_16_R2/pom.xml @@ -20,7 +20,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml index dadb0b28..7e15f014 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml @@ -21,7 +21,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml index 24b0969c..0df887f1 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml @@ -20,7 +20,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml index 97bafec4..69c14e57 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml @@ -20,7 +20,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml index e687e01b..f88220ce 100644 --- a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml +++ b/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml @@ -20,7 +20,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/orebfuscator-plugin/pom.xml b/orebfuscator-plugin/pom.xml index e4919bba..6925b175 100644 --- a/orebfuscator-plugin/pom.xml +++ b/orebfuscator-plugin/pom.xml @@ -74,7 +74,7 @@ provided - com.comphenix.protocol + net.dmulloy2 ProtocolLib ${dependency.protocollib.version} provided diff --git a/pom.xml b/pom.xml index e5b04c55..eb4cdfd2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,6 @@ - + 4.0.0 net.imprex @@ -25,7 +27,7 @@ 3.1.0 5.11.2 4.1.90.Final - 5.0.0 + 5.3.0 1.10.8 1.8.0 @@ -43,10 +45,6 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - dmulloy2-repo - https://repo.dmulloy2.net/repository/public/ - papermc https://repo.papermc.io/repository/maven-public/ @@ -122,9 +120,9 @@ maven-surefire-plugin ${plugin.sunfire.version} - org.junit.jupiter:junit-jupiter - false - + org.junit.jupiter:junit-jupiter + false + org.apache.maven.plugins @@ -161,7 +159,7 @@ - +