From fbd5684e31a3f56bc3228b648ba150ee84fe8678 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 2 Jan 2026 14:57:43 +0100 Subject: [PATCH] Fix plugin folder resolution for metrics creation --- .../java/dev/faststats/bukkit/BukkitMetricsImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 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 565aa0d..6daf7b5 100644 --- a/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java +++ b/bukkit/src/main/java/dev/faststats/bukkit/BukkitMetricsImpl.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.Contract; import org.jspecify.annotations.Nullable; +import java.io.File; import java.nio.file.Path; import java.util.Optional; import java.util.function.Supplier; @@ -93,9 +94,17 @@ private Optional tryOrEmpty(Supplier supplier) { static final class Factory extends SimpleMetrics.Factory { @Override public Metrics create(Plugin plugin) throws IllegalStateException { - var dataFolder = plugin.getServer().getPluginsFolder().toPath().resolve("faststats"); + var dataFolder = getPluginsFolder(plugin).resolve("faststats"); var config = dataFolder.resolve("config.properties"); return new BukkitMetricsImpl(this, plugin, config); } + + private static Path getPluginsFolder(Plugin plugin) { + try { + return plugin.getServer().getPluginsFolder().toPath(); + } catch (NoSuchMethodError e) { + return plugin.getDataFolder().getParentFile().toPath(); + } + } } }