From 68a0af750b36e2476b69903a71b4ae31b2253ad7 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 18:30:56 +0100 Subject: [PATCH 01/16] Wrap submitData with try-catch in SimpleMetrics --- core/src/main/java/dev/faststats/core/SimpleMetrics.java | 8 +++++++- gradle.properties | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index a0a2d8c..7e8e5d9 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -128,7 +128,13 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { }); info("Starting metrics submission"); - executor.scheduleAtFixedRate(this::submitData, initialDelay, period, unit); + executor.scheduleAtFixedRate(() -> { + try { + submitData(); + } catch (Exception e) { + error("Failed to submit metrics", e); + } + }, initialDelay, period, unit); } protected boolean isSubmitting() { diff --git a/gradle.properties b/gradle.properties index 304b5f6..8b306ab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.4 +version=0.7.5-pre1 From 48067b8a4be3fc9d5e194ffcc6761dcec1f6eb1e Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 19:43:38 +0100 Subject: [PATCH 02/16] Refactor submitAsync with exception handling --- .../dev/faststats/core/SimpleMetrics.java | 65 +++++++++++-------- .../java/dev/faststats/BukkitMetricsTest.java | 18 ++--- .../test/java/dev/faststats/MockMetrics.java | 9 ++- 3 files changed, 50 insertions(+), 42 deletions(-) diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 7e8e5d9..c6ed05d 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -26,6 +26,7 @@ import java.util.Properties; import java.util.Set; import java.util.UUID; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -110,7 +111,7 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { } var enabled = Boolean.parseBoolean(System.getProperty("faststats.enabled", "true")); - + if (!config.enabled() || !enabled) { warn("Metrics disabled, not starting submission"); return; @@ -141,14 +142,21 @@ protected boolean isSubmitting() { return executor != null && !executor.isShutdown(); } - protected void submitData() { + protected CompletableFuture submitAsync() throws IOException { var data = createData().toString(); var bytes = data.getBytes(StandardCharsets.UTF_8); + + info("Uncompressed data: " + data); + try (var byteOutput = new ByteArrayOutputStream(); var output = new GZIPOutputStream(byteOutput)) { + output.write(bytes); output.finish(); + var compressed = byteOutput.toByteArray(); + info("Compressed size: " + compressed.length + " bytes"); + var request = HttpRequest.newBuilder() .POST(HttpRequest.BodyPublishers.ofByteArray(compressed)) .header("Content-Encoding", "gzip") @@ -160,31 +168,34 @@ protected void submitData() { .build(); info("Sending metrics to: " + url); - info("Uncompressed data: " + data); - info("Compressed size: " + compressed.length + " bytes"); - - var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); - var statusCode = response.statusCode(); - var body = response.body(); - - if (statusCode >= 200 && statusCode < 300) { - info("Metrics submitted with status code: " + statusCode + " (" + body + ")"); - } else if (statusCode >= 300 && statusCode < 400) { - warn("Received redirect response from metrics server: " + statusCode + " (" + body + ")"); - } else if (statusCode >= 400 && statusCode < 500) { - error("Submitted invalid request to metrics server: " + statusCode + " (" + body + ")", null); - } else if (statusCode >= 500 && statusCode < 600) { - error("Received server error response from metrics server: " + statusCode + " (" + body + ")", null); - } else { - warn("Received unexpected response from metrics server: " + statusCode + " (" + body + ")"); - } - - } catch (HttpConnectTimeoutException e) { - error("Metrics submission timed out after 3 seconds: " + url, null); - } catch (ConnectException e) { - error("Failed to connect to metrics server: " + url, null); - } catch (Exception e) { - error("Failed to submit metrics", e); + return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)).thenApply(response -> { + var statusCode = response.statusCode(); + var body = response.body(); + + if (statusCode >= 200 && statusCode < 300) { + info("Metrics submitted with status code: " + statusCode + " (" + body + ")"); + return true; + } else if (statusCode >= 300 && statusCode < 400) { + warn("Received redirect response from metrics server: " + statusCode + " (" + body + ")"); + } else if (statusCode >= 400 && statusCode < 500) { + error("Submitted invalid request to metrics server: " + statusCode + " (" + body + ")", null); + } else if (statusCode >= 500 && statusCode < 600) { + error("Received server error response from metrics server: " + statusCode + " (" + body + ")", null); + } else { + warn("Received unexpected response from metrics server: " + statusCode + " (" + body + ")"); + } + return false; + }).exceptionally(throwable -> { + var cause = throwable.getCause() != null ? throwable.getCause() : throwable; + if (cause instanceof HttpConnectTimeoutException) { + error("Metrics submission timed out after 3 seconds: " + url, null); + } else if (cause instanceof ConnectException) { + error("Failed to connect to metrics server: " + url, null); + } else { + error("Failed to submit metrics", throwable); + } + return false; + }); } } diff --git a/core/src/test/java/dev/faststats/BukkitMetricsTest.java b/core/src/test/java/dev/faststats/BukkitMetricsTest.java index a3d69de..6d6faed 100644 --- a/core/src/test/java/dev/faststats/BukkitMetricsTest.java +++ b/core/src/test/java/dev/faststats/BukkitMetricsTest.java @@ -2,25 +2,15 @@ import org.junit.jupiter.api.Test; -import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.UUID; -import java.util.zip.GZIPOutputStream; + +import static org.junit.jupiter.api.Assumptions.assumeTrue; public class BukkitMetricsTest { @Test public void testCreateData() throws IOException { - var mock = new MockMetrics(UUID.randomUUID(), "bba4a14eac38779007a6fda4814381ab", true); - var data = mock.createData(); - var bytes = data.toString().getBytes(StandardCharsets.UTF_8); - try (var byteOutput = new ByteArrayOutputStream(); - var output = new GZIPOutputStream(byteOutput)) { - output.write(bytes); - output.finish(); - var compressed = byteOutput.toByteArray(); - mock.printInfo(new String(compressed, StandardCharsets.UTF_8) + " (" + compressed.length + " bytes)"); - mock.printInfo(new String(bytes, StandardCharsets.UTF_8) + " (" + bytes.length + " bytes)"); - } + var mock = new MockMetrics(UUID.randomUUID(), "24f9fc423ed06194065a42d00995c600", true); + assumeTrue(mock.submitAsync().join(), "For this test to run, the server must be running"); } } diff --git a/core/src/test/java/dev/faststats/MockMetrics.java b/core/src/test/java/dev/faststats/MockMetrics.java index 710842f..cbc0047 100644 --- a/core/src/test/java/dev/faststats/MockMetrics.java +++ b/core/src/test/java/dev/faststats/MockMetrics.java @@ -6,14 +6,16 @@ import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; +import java.io.IOException; import java.net.URI; import java.util.Set; import java.util.UUID; +import java.util.concurrent.CompletableFuture; @NullMarked public class MockMetrics extends SimpleMetrics { public MockMetrics(UUID serverId, @Token String token, boolean debug) { - super(new SimpleMetrics.Config(serverId, true, debug), Set.of(), token, URI.create("http://localhost:5000"), debug); + super(new SimpleMetrics.Config(serverId, true, debug), Set.of(), token, URI.create("http://localhost:5000/v1/collect"), debug); } @Override @@ -32,6 +34,11 @@ protected void printWarning(String message) { System.out.println(message); } + @Override + public CompletableFuture submitAsync() throws IOException { + return super.submitAsync(); + } + @Override public JsonObject createData() { return super.createData(); From 4033d4ef4300013dfcc7d813cdfe03b4104f0dcd Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 19:44:13 +0100 Subject: [PATCH 03/16] Update version to 0.7.5-pre2 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8b306ab..4dcf803 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre1 +version=0.7.5-pre2 From 419aa8789bf8073706914b514379660d1d2feb45 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 19:47:26 +0100 Subject: [PATCH 04/16] Switch to submitAsync in scheduled task --- core/src/main/java/dev/faststats/core/SimpleMetrics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index c6ed05d..15cc5cb 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -131,7 +131,7 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { info("Starting metrics submission"); executor.scheduleAtFixedRate(() -> { try { - submitData(); + submitAsync(); } catch (Exception e) { error("Failed to submit metrics", e); } From 5d7252fe67047dce5ae5e51c1d2989287562ff91 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 20:19:03 +0100 Subject: [PATCH 05/16] Fix online mode check logic in BukkitMetricsImpl --- .../src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index 13eda88..e7fe9bb 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -33,7 +33,7 @@ private BukkitMetricsImpl(SimpleMetrics.Factory factory, Plugin plugin, Path } private boolean checkOnlineMode() { - return tryOrEmpty(server.getServerConfig()::isProxyOnlineMode) + return tryOrEmpty(() -> server.getServerConfig().isProxyOnlineMode()) .or(() -> tryOrEmpty(this::isProxyOnlineMode)) .orElseGet(server::getOnlineMode); } From 177ef6f4e2d48e439e7bf35e52406bcdbb47fbef Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 20:20:13 +0100 Subject: [PATCH 06/16] Update version to 0.7.5-pre3 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4dcf803..4aa4c3e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre2 +version=0.7.5-pre3 From 5db2c8dc4cf1138379aad3f59ae06dcbeb1536b6 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 20:54:49 +0100 Subject: [PATCH 07/16] debugs --- .../dev/faststats/bukkit/BukkitMetricsImpl.java | 16 ++++++++++++++++ .../java/dev/faststats/core/SimpleMetrics.java | 11 +++++++++++ 2 files changed, 27 insertions(+) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index e7fe9bb..2c3e016 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -54,16 +54,32 @@ private boolean isProxyOnlineMode() { @Override @SuppressWarnings("deprecation") protected void appendDefaultData(JsonObject charts) { + System.out.println("#appendDefaultData pluginVersion:"); + printInfo("#appendDefaultData pluginVersion:"); + var pluginVersion = tryOrEmpty(() -> plugin.getPluginMeta().getVersion()) .orElseGet(() -> plugin.getDescription().getVersion()); + + System.out.println(pluginVersion); + printInfo(pluginVersion); + + System.out.println("#appendDefaultData minecraftVersion:"); + printInfo("#appendDefaultData minecraftVersion:"); + var minecraftVersion = tryOrEmpty(server::getMinecraftVersion) .orElseGet(() -> server.getBukkitVersion().split("-", 2)[0]); + System.out.println(minecraftVersion); + printInfo(minecraftVersion); + charts.addProperty("minecraft_version", minecraftVersion); charts.addProperty("online_mode", checkOnlineMode()); charts.addProperty("player_count", server.getOnlinePlayers().size()); charts.addProperty("plugin_version", pluginVersion); charts.addProperty("server_type", server.getName()); + + System.out.println("#appendDefaultData done"); + printInfo("#appendDefaultData done"); } @Override diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 15cc5cb..36fa684 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -200,6 +200,8 @@ protected CompletableFuture submitAsync() throws IOException { } protected JsonObject createData() { + System.out.println("#createData"); + printInfo("#createData"); var data = new JsonObject(); var charts = new JsonObject(); @@ -209,6 +211,9 @@ protected JsonObject createData() { charts.addProperty("os_version", System.getProperty("os.version")); charts.addProperty("core_count", Runtime.getRuntime().availableProcessors()); + System.out.println(charts); + printInfo(charts.toString()); + this.charts.forEach(chart -> { try { chart.getData().ifPresent(chartData -> charts.add(chart.getId(), chartData)); @@ -218,9 +223,15 @@ protected JsonObject createData() { }); appendDefaultData(charts); + System.out.println(charts); + printInfo(charts.toString()); data.addProperty("server_id", config.serverId().toString()); data.add("data", charts); + + System.out.println(data); + printInfo(data.toString()); + return data; } From ce59cbb9b98cce03c8057a64123bac05b32a011b Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 20:55:03 +0100 Subject: [PATCH 08/16] Update version to 0.7.5-pre4 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4aa4c3e..4f921f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre3 +version=0.7.5-pre4 From 7a179fc8a517af3e9c529c3b690d54f3b8395000 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:00:38 +0100 Subject: [PATCH 09/16] Add error output for submitAsync failure in SimpleMetrics --- core/src/main/java/dev/faststats/core/SimpleMetrics.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 36fa684..3f49e67 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -133,6 +133,9 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { try { submitAsync(); } catch (Exception e) { + System.err.println("Failed to submit metrics"); + e.printStackTrace(System.err); + printError("Failed to submit metrics", e); error("Failed to submit metrics", e); } }, initialDelay, period, unit); From 763eb1bd793bbf433acb6aceaea0c68a57f1aa45 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:00:49 +0100 Subject: [PATCH 10/16] Update version to 0.7.5-pre5 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4f921f3..70cac7e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre4 +version=0.7.5-pre5 From b69c01edede9339c1114140e0b9ee04b6b574fbc Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:12:58 +0100 Subject: [PATCH 11/16] more logs --- .../faststats/bukkit/BukkitMetricsImpl.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index 2c3e016..3b9f292 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -62,12 +62,31 @@ protected void appendDefaultData(JsonObject charts) { System.out.println(pluginVersion); printInfo(pluginVersion); - + System.out.println("#appendDefaultData minecraftVersion:"); printInfo("#appendDefaultData minecraftVersion:"); + + System.out.println(server.getBukkitVersion()); + System.out.println(server.getVersion()); + printInfo(server.getBukkitVersion()); + printInfo(server.getVersion()); + var minecraftVersion = tryOrEmpty(server::getMinecraftVersion) - .orElseGet(() -> server.getBukkitVersion().split("-", 2)[0]); + .orElseGet(() -> { + try { + System.out.println(server.getBukkitVersion()); + printInfo(server.getBukkitVersion()); + return server.getBukkitVersion().split("-", 2)[0]; + } catch (Exception e) { + System.err.println("Failed to get Minecraft version"); + e.printStackTrace(System.err); + printError("Failed to get Minecraft version", e); + return server.getVersion(); + } + }); + //.or(() -> tryOrEmpty(() -> server.getBukkitVersion().split("-", 2)[0])) + //.orElseGet(() -> server.getVersion()); System.out.println(minecraftVersion); printInfo(minecraftVersion); From 68dd6036e93ae9c5ebe9685f584f95b912c70aab Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:13:14 +0100 Subject: [PATCH 12/16] Update version to 0.7.5-pre6 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 70cac7e..249128e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre5 +version=0.7.5-pre6 From 6324437ee7e42db8501c5166dbc89943cda81b90 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:19:22 +0100 Subject: [PATCH 13/16] Update error handling and version to 0.7.5-pre7 --- .../main/java/dev/faststats/bukkit/BukkitMetricsImpl.java | 2 +- core/src/main/java/dev/faststats/core/SimpleMetrics.java | 8 ++++---- gradle.properties | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index 3b9f292..04a455e 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -119,7 +119,7 @@ protected void printWarning(String message) { private Optional tryOrEmpty(Supplier supplier) { try { return Optional.of(supplier.get()); - } catch (NoSuchMethodError | Exception e) { + } catch (Throwable e) { return Optional.empty(); } } diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 3f49e67..6d69c16 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -132,11 +132,11 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { executor.scheduleAtFixedRate(() -> { try { submitAsync(); - } catch (Exception e) { + } catch (Throwable t) { System.err.println("Failed to submit metrics"); - e.printStackTrace(System.err); - printError("Failed to submit metrics", e); - error("Failed to submit metrics", e); + t.printStackTrace(System.err); + printError("Failed to submit metrics", t); + error("Failed to submit metrics", t); } }, initialDelay, period, unit); } diff --git a/gradle.properties b/gradle.properties index 249128e..22bf4f1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre6 +version=0.7.5-pre7 From 9171bf1e51721a9fe10d2a1bd3d7bb659b96f198 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:20:20 +0100 Subject: [PATCH 14/16] Improve error logging in BukkitMetricsImpl --- .../src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index 04a455e..c7ba2d2 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -120,6 +120,9 @@ private Optional tryOrEmpty(Supplier supplier) { try { return Optional.of(supplier.get()); } catch (Throwable e) { + printError("Failed to get value", e); + System.err.println("Failed to get value"); + e.printStackTrace(System.err); return Optional.empty(); } } From 09dee82eb42805bb52738a915e55a6d29e532d72 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:49:46 +0100 Subject: [PATCH 15/16] Refine version and error handling in metrics classes --- .../faststats/bukkit/BukkitMetricsImpl.java | 46 ++----------------- .../dev/faststats/core/SimpleMetrics.java | 16 +------ gradle.properties | 2 +- 3 files changed, 7 insertions(+), 57 deletions(-) diff --git a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java index c7ba2d2..321f2d3 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -52,53 +52,20 @@ private boolean isProxyOnlineMode() { } @Override - @SuppressWarnings("deprecation") + @SuppressWarnings({"deprecation", "Convert2MethodRef"}) protected void appendDefaultData(JsonObject charts) { - System.out.println("#appendDefaultData pluginVersion:"); - printInfo("#appendDefaultData pluginVersion:"); - var pluginVersion = tryOrEmpty(() -> plugin.getPluginMeta().getVersion()) .orElseGet(() -> plugin.getDescription().getVersion()); - System.out.println(pluginVersion); - printInfo(pluginVersion); - - System.out.println("#appendDefaultData minecraftVersion:"); - printInfo("#appendDefaultData minecraftVersion:"); - - - System.out.println(server.getBukkitVersion()); - System.out.println(server.getVersion()); - printInfo(server.getBukkitVersion()); - printInfo(server.getVersion()); - - var minecraftVersion = tryOrEmpty(server::getMinecraftVersion) - .orElseGet(() -> { - try { - System.out.println(server.getBukkitVersion()); - printInfo(server.getBukkitVersion()); - return server.getBukkitVersion().split("-", 2)[0]; - } catch (Exception e) { - System.err.println("Failed to get Minecraft version"); - e.printStackTrace(System.err); - printError("Failed to get Minecraft version", e); - return server.getVersion(); - } - }); - //.or(() -> tryOrEmpty(() -> server.getBukkitVersion().split("-", 2)[0])) - //.orElseGet(() -> server.getVersion()); - - System.out.println(minecraftVersion); - printInfo(minecraftVersion); + var minecraftVersion = tryOrEmpty(() -> server.getMinecraftVersion()) + .or(() -> tryOrEmpty(() -> server.getBukkitVersion().split("-", 2)[0])) + .orElseGet(() -> server.getVersion().split("\\(MC: |\\)", 3)[1]); charts.addProperty("minecraft_version", minecraftVersion); charts.addProperty("online_mode", checkOnlineMode()); charts.addProperty("player_count", server.getOnlinePlayers().size()); charts.addProperty("plugin_version", pluginVersion); charts.addProperty("server_type", server.getName()); - - System.out.println("#appendDefaultData done"); - printInfo("#appendDefaultData done"); } @Override @@ -119,10 +86,7 @@ protected void printWarning(String message) { private Optional tryOrEmpty(Supplier supplier) { try { return Optional.of(supplier.get()); - } catch (Throwable e) { - printError("Failed to get value", e); - System.err.println("Failed to get value"); - e.printStackTrace(System.err); + } catch (NoSuchMethodError | Exception e) { return Optional.empty(); } } diff --git a/core/src/main/java/dev/faststats/core/SimpleMetrics.java b/core/src/main/java/dev/faststats/core/SimpleMetrics.java index 6d69c16..9f0e857 100644 --- a/core/src/main/java/dev/faststats/core/SimpleMetrics.java +++ b/core/src/main/java/dev/faststats/core/SimpleMetrics.java @@ -133,9 +133,6 @@ private void startSubmitting(long initialDelay, long period, TimeUnit unit) { try { submitAsync(); } catch (Throwable t) { - System.err.println("Failed to submit metrics"); - t.printStackTrace(System.err); - printError("Failed to submit metrics", t); error("Failed to submit metrics", t); } }, initialDelay, period, unit); @@ -203,8 +200,6 @@ protected CompletableFuture submitAsync() throws IOException { } protected JsonObject createData() { - System.out.println("#createData"); - printInfo("#createData"); var data = new JsonObject(); var charts = new JsonObject(); @@ -214,27 +209,18 @@ protected JsonObject createData() { charts.addProperty("os_version", System.getProperty("os.version")); charts.addProperty("core_count", Runtime.getRuntime().availableProcessors()); - System.out.println(charts); - printInfo(charts.toString()); - this.charts.forEach(chart -> { try { chart.getData().ifPresent(chartData -> charts.add(chart.getId(), chartData)); - } catch (Exception e) { + } catch (Throwable e) { error("Failed to build chart data: " + chart.getId(), e); } }); appendDefaultData(charts); - System.out.println(charts); - printInfo(charts.toString()); data.addProperty("server_id", config.serverId().toString()); data.add("data", charts); - - System.out.println(data); - printInfo(data.toString()); - return data; } diff --git a/gradle.properties b/gradle.properties index 22bf4f1..f89c402 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre7 +version=0.7.5-pre8 From e56701c71195f8a36d3f87d46a82f8a79a2c19bb Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 21:54:22 +0100 Subject: [PATCH 16/16] Update version to 0.7.5 in gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index f89c402..8387a74 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=0.7.5-pre8 +version=0.7.5