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.MatchHistory;
|
||||||
import de.fussball.plugin.stats.StatsManager;
|
import de.fussball.plugin.stats.StatsManager;
|
||||||
import de.fussball.plugin.utils.Messages;
|
import de.fussball.plugin.utils.Messages;
|
||||||
|
import de.fussball.plugin.utils.UpdateChecker;
|
||||||
import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
public class Fussball extends 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 static Fussball instance;
|
||||||
private ArenaManager arenaManager;
|
private ArenaManager arenaManager;
|
||||||
private GameManager gameManager;
|
private GameManager gameManager;
|
||||||
@@ -50,6 +54,17 @@ public class Fussball extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getLogger().info("⚽ Fußball-Plugin v" + getDescription().getVersion() + " gestartet!");
|
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
|
@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