Dateien nach "src/main/java/dev/viper/weathertime" hochladen
This commit is contained in:
21
src/main/java/dev/viper/weathertime/MetricsManager.java
Normal file
21
src/main/java/dev/viper/weathertime/MetricsManager.java
Normal 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;
|
||||
}
|
||||
}
|
50
src/main/java/dev/viper/weathertime/UpdateChecker.java
Normal file
50
src/main/java/dev/viper/weathertime/UpdateChecker.java
Normal 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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user