Dateien nach "src/main/java/dev/viper/weathertime" hochladen

This commit is contained in:
2025-08-11 15:34:44 +00:00
parent 4e0195f7ab
commit 26d1f27f79
2 changed files with 71 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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<String> 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());
}
});
}
}