Update from Git Manager GUI
This commit is contained in:
@@ -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
|
||||
|
||||
51
src/main/java/de/fussball/plugin/utils/UpdateChecker.java
Normal file
51
src/main/java/de/fussball/plugin/utils/UpdateChecker.java
Normal 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());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user