Update from Git Manager GUI

This commit is contained in:
2026-02-28 09:01:46 +01:00
parent ce1b67754d
commit 4cf355beee
2 changed files with 66 additions and 0 deletions

View File

@@ -10,11 +10,15 @@ import de.fussball.plugin.placeholders.FussballPlaceholders;
import de.fussball.plugin.stats.MatchHistory;
import de.fussball.plugin.stats.StatsManager;
import de.fussball.plugin.utils.Messages;
import de.fussball.plugin.utils.UpdateChecker;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
import org.bukkit.plugin.java.JavaPlugin;
public class Fussball extends JavaPlugin {
/** SpigotMC-Ressourcen-ID anpassen sobald das Plugin hochgeladen ist! */
private static final int SPIGOT_RESOURCE_ID = 132994;
private static Fussball instance;
private ArenaManager arenaManager;
private GameManager gameManager;
@@ -50,6 +54,17 @@ public class Fussball extends JavaPlugin {
}
getLogger().info("⚽ Fußball-Plugin v" + getDescription().getVersion() + " gestartet!");
// ── Update-Check (asynchron, blockiert den Server nicht) ──────────────
new UpdateChecker(this, SPIGOT_RESOURCE_ID).getVersion(latestVersion -> {
if (getDescription().getVersion().equals(latestVersion)) {
getLogger().info("[Fussball] Plugin ist aktuell (v" + latestVersion + ").");
} else {
getLogger().warning("[Fussball] Neue Version verfügbar: v" + latestVersion
+ " (installiert: v" + getDescription().getVersion() + ")");
getLogger().warning("[Fussball] Download: https://www.spigotmc.org/resources/" + SPIGOT_RESOURCE_ID);
}
});
}
@Override

View File

@@ -0,0 +1,51 @@
package de.fussball.plugin.utils;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import java.util.function.Consumer;
/**
* Prüft asynchron, ob eine neuere Version des Plugins auf SpigotMC verfügbar ist.
* Basiert auf: https://www.spigotmc.org/wiki/creating-an-update-checker-that-checks-for-updates
*
* Verwendung in onEnable():
* new UpdateChecker(this, RESOURCE_ID).getVersion(version -> { ... });
*/
public class UpdateChecker {
private final JavaPlugin plugin;
private final int resourceId;
public UpdateChecker(JavaPlugin plugin, int resourceId) {
this.plugin = plugin;
this.resourceId = resourceId;
}
/**
* Ruft asynchron die neueste Version von der Spigot-API ab
* und übergibt sie dem angegebenen Consumer.
*
* @param consumer Callback, der die aktuelle SpigotMC-Version erhält
*/
public void getVersion(final Consumer<String> consumer) {
Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> {
try (InputStream is = new URL(
"https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId + "/~"
).openStream();
Scanner scanner = new Scanner(is)) {
if (scanner.hasNext()) {
consumer.accept(scanner.next());
}
} catch (IOException e) {
plugin.getLogger().warning("[Fussball] Update-Check fehlgeschlagen: " + e.getMessage());
}
});
}
}