From 832a94ea64edc768a78a21aa110342fa2440eeb7 Mon Sep 17 00:00:00 2001 From: 5vl Date: Thu, 14 Jan 2021 11:35:21 +0100 Subject: [PATCH] 1.1.0 This update has an update checker! --- java/coreplugin/coreplugin/Core.java | 13 +++++++- java/coreplugin/coreplugin/Logger.java | 30 +++++++++++++++++ .../coreplugin/utils/UpdateChecker.java | 33 +++++++++++++++++++ resources/plugin.yml | 2 +- 4 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 java/coreplugin/coreplugin/Logger.java create mode 100644 java/coreplugin/coreplugin/utils/UpdateChecker.java diff --git a/java/coreplugin/coreplugin/Core.java b/java/coreplugin/coreplugin/Core.java index 32d7f5d..66c1f25 100644 --- a/java/coreplugin/coreplugin/Core.java +++ b/java/coreplugin/coreplugin/Core.java @@ -12,14 +12,17 @@ import coreplugin.coreplugin.commands.punish.kick; import coreplugin.coreplugin.commands.punish.unban; import coreplugin.coreplugin.events.OnPlayerJoin; import coreplugin.coreplugin.events.OnPlayerLeave; +import coreplugin.coreplugin.utils.UpdateChecker; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public final class Core extends JavaPlugin { private static Core instance; + public String updatemsg; + String version = this.getDescription().getVersion(); @Override public void onEnable() { - System.out.println("Enabed Core Plugin 1.0.0"); + System.out.println("Enabed Core Plugin " + version); instance = this; this.getConfig().options().copyDefaults(); saveDefaultConfig(); @@ -27,6 +30,14 @@ public final class Core extends JavaPlugin { plm.registerEvents(new OnPlayerJoin(), this); plm.registerEvents(new OnPlayerLeave(), this); registerCMD(); + new UpdateChecker(this, 87756).getLatestVersion(version -> { + if (this.getDescription().getVersion().equalsIgnoreCase(version)) { + Logger.log(Logger.LogLevel.SUCCESS, "Core Plugin is up to date."); + } else { + Logger.log(Logger.LogLevel.ERROR, "Plugin is out of date, please download the new version at https://www.spigotmc.org/resources/core-plugin.87756/"); + } + + }); } public static Core getInstance() { return instance; diff --git a/java/coreplugin/coreplugin/Logger.java b/java/coreplugin/coreplugin/Logger.java new file mode 100644 index 0000000..4faffc1 --- /dev/null +++ b/java/coreplugin/coreplugin/Logger.java @@ -0,0 +1,30 @@ +package coreplugin.coreplugin; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; + +public class Logger { + public static void log(LogLevel level, String message) { + if (message == null) return; + + switch (level) { + case ERROR: + Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&c&lERROR&r&8] &f" + message)); + break; + case WARNING: + Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&6&lWARNING&r&8] &f" + message)); + break; + case INFO: + Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&e&lINFO&r&8] &f" + message)); + break; + case SUCCESS: + Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&a&lSUCCESS&r&8] &f" + message)); + break; + case OUTLINE: + Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7" + message)); + break; + } + } + + public enum LogLevel { ERROR, WARNING, INFO, SUCCESS, OUTLINE } +} \ No newline at end of file diff --git a/java/coreplugin/coreplugin/utils/UpdateChecker.java b/java/coreplugin/coreplugin/utils/UpdateChecker.java new file mode 100644 index 0000000..99fe2d5 --- /dev/null +++ b/java/coreplugin/coreplugin/utils/UpdateChecker.java @@ -0,0 +1,33 @@ +package coreplugin.coreplugin.utils; + +import coreplugin.coreplugin.Core; +import org.bukkit.Bukkit; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Scanner; +import java.util.function.Consumer; + +public class UpdateChecker { + + private Core plugin; + private int resourceID; + + public UpdateChecker (Core plugin, int resourceID) { + this.plugin = plugin; + this.resourceID = resourceID; + } + + public void getLatestVersion(Consumer consumer) { + Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { + try (InputStream inputStream = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceID).openStream(); + Scanner scanner = new Scanner(inputStream)) { + if (scanner.hasNext()) { + consumer.accept(scanner.next()); + } + } catch (IOException exception){ + plugin.getLogger().info("Core Plugin Update Checker does not work." + exception.getMessage()); + } + }); + } +} \ No newline at end of file diff --git a/resources/plugin.yml b/resources/plugin.yml index 15faaaa..00916f1 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,5 +1,5 @@ name: CorePlugin -version: 1.0.0 +version: 1.1.0 main: coreplugin.coreplugin.Core api-version: 1.16 authors: [ 5vl ]