diff --git a/src/main/java/dev/viper/weathertime/MetricsManager.java b/src/main/java/dev/viper/weathertime/MetricsManager.java new file mode 100644 index 0000000..f959e3b --- /dev/null +++ b/src/main/java/dev/viper/weathertime/MetricsManager.java @@ -0,0 +1,21 @@ +package dev.viper.weathertime; + +import org.bstats.bukkit.Metrics; +import org.bukkit.plugin.java.JavaPlugin; + +public class MetricsManager { + + private final Metrics metrics; + + public MetricsManager(JavaPlugin plugin) { + int pluginId = 26865; // Deine Plugin-ID von bStats eintragen + this.metrics = new Metrics(plugin, pluginId); + + // Optional: Eigene Charts hinzufügen + // metrics.addCustomChart(new Metrics.SingleLineChart("custom_chart", () -> 1)); + } + + public Metrics getMetrics() { + return metrics; + } +} diff --git a/src/main/java/dev/viper/weathertime/UpdateChecker.java b/src/main/java/dev/viper/weathertime/UpdateChecker.java new file mode 100644 index 0000000..8a6c7fe --- /dev/null +++ b/src/main/java/dev/viper/weathertime/UpdateChecker.java @@ -0,0 +1,50 @@ +package dev.viper.weathertime; + +import org.bukkit.Bukkit; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Scanner; +import java.util.function.Consumer; + +import org.json.JSONObject; + +public class UpdateChecker { + private final JavaPlugin plugin; + private final int resourceId; + + public UpdateChecker(JavaPlugin plugin, int resourceId) { + this.plugin = plugin; + this.resourceId = resourceId; + } + + public void getLatestVersion(Consumer consumer) { + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { + try { + HttpURLConnection connection = (HttpURLConnection) + new URL("https://api.spiget.org/v2/resources/" + resourceId + "/versions/latest").openConnection(); + + connection.setRequestMethod("GET"); + connection.addRequestProperty("User-Agent", "Mozilla/5.0"); + + try (InputStream inputStream = connection.getInputStream(); + Scanner scanner = new Scanner(inputStream)) { + String response = scanner.useDelimiter("\\A").next(); + + JSONObject json = new JSONObject(response); + String versionName = json.optString("name"); + + // Nur Zahlen + Punkte behalten (z.B. "version 1.1" -> "1.1") + String cleanVersion = versionName.replaceAll("[^0-9.]", "").trim(); + + consumer.accept(cleanVersion.isEmpty() ? versionName : cleanVersion); + } + } catch (Exception e) { + plugin.getLogger().warning("Konnte keine Update-Info abrufen: " + e.getMessage()); + } + }); +} + +}