diff --git a/pom.xml b/pom.xml index 71ae8f0..27c9d4b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pl.sloudpl SloudVanish - 1.2 + 1.2.1 jar SloudVanish diff --git a/src/main/java/pl/sloudpl/simplevanish/SimpleVanish.java b/src/main/java/pl/sloudpl/simplevanish/SimpleVanish.java index c46f6f8..534b5dd 100644 --- a/src/main/java/pl/sloudpl/simplevanish/SimpleVanish.java +++ b/src/main/java/pl/sloudpl/simplevanish/SimpleVanish.java @@ -7,6 +7,7 @@ import pl.sloudpl.simplevanish.cmds.VanishCommand; import pl.sloudpl.simplevanish.events.onJoinEvent; import pl.sloudpl.simplevanish.events.onLeaveEvent; import pl.sloudpl.simplevanish.events.onPlayerDamage; +import pl.sloudpl.simplevanish.utils.UpdateChecker; import java.util.ArrayList; @@ -31,6 +32,17 @@ public final class SimpleVanish extends JavaPlugin { new onPlayerDamage(this); } + new UpdateChecker(this, 108713).getLatestVersion(version -> { + String current = this.getDescription().getVersion(); + if (!current.equalsIgnoreCase(version)) { + getLogger().warning("§cA new version of §eSloudVanish §cis available!"); + getLogger().warning("§7Current: §e" + current + " §7| Latest: §a" + version); + getLogger().warning("§bDownload: https://www.spigotmc.org/resources/sloudvanish.108713/"); + } else { + getLogger().info("§aSloudVanish is up to date (v" + current + ")."); + } + }); + } @Override diff --git a/src/main/java/pl/sloudpl/simplevanish/utils/UpdateChecker.java b/src/main/java/pl/sloudpl/simplevanish/utils/UpdateChecker.java new file mode 100644 index 0000000..cf58cb2 --- /dev/null +++ b/src/main/java/pl/sloudpl/simplevanish/utils/UpdateChecker.java @@ -0,0 +1,40 @@ +package pl.sloudpl.simplevanish.utils; + +import org.bukkit.Bukkit; +import pl.sloudpl.simplevanish.SimpleVanish; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.function.Consumer; + +public class UpdateChecker { + private final SimpleVanish plugin; + private final int resourceId; + + public UpdateChecker(SimpleVanish plugin, int resourceId) { + this.plugin = plugin; + this.resourceId = resourceId; + } + + public void getLatestVersion(Consumer callback) { + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { + try { + URL url = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + resourceId); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(5000); + conn.setReadTimeout(5000); + + try (BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { + String version = reader.readLine(); + callback.accept(version); + } + + } catch (Exception e) { + plugin.getLogger().warning("Failed to check for updates: " + e.getMessage()); + } + }); + } +}