diff options
Diffstat (limited to 'src/me')
| -rw-r--r-- | src/me/fatpigsarefat/quests/commands/CommandQuests.java | 16 | ||||
| -rw-r--r-- | src/me/fatpigsarefat/quests/updater/Updater.java | 6 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/me/fatpigsarefat/quests/commands/CommandQuests.java b/src/me/fatpigsarefat/quests/commands/CommandQuests.java index c6ffe540..7428e1c8 100644 --- a/src/me/fatpigsarefat/quests/commands/CommandQuests.java +++ b/src/me/fatpigsarefat/quests/commands/CommandQuests.java @@ -13,6 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; public class CommandQuests implements CommandExecutor { @@ -54,6 +55,20 @@ public class CommandQuests implements CommandExecutor { } sender.sendMessage(ChatColor.DARK_GRAY + "View info using /q a types [type]."); return true; + } else if (args[1].equalsIgnoreCase("update")) { + sender.sendMessage(ChatColor.GRAY + "Checking for updates..."); + new BukkitRunnable() { + @Override + public void run() { + Quests.getUpdater().check(); + if (Quests.getUpdater().isUpdateReady()) { + sender.sendMessage(Quests.getUpdater().getMessage()); + } else { + sender.sendMessage(ChatColor.GRAY + "No updates were found."); + } + } + }.runTaskAsynchronously(Quests.getInstance()); + return true; } } else if (args.length == 3) { if (args[1].equalsIgnoreCase("opengui")) { @@ -215,6 +230,7 @@ public class CommandQuests implements CommandExecutor { sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests a moddata " + ChatColor.DARK_GRAY + ": view help for quest progression"); sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests a types [type]" + ChatColor.DARK_GRAY + ": view registered task types"); sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests a reload " + ChatColor.DARK_GRAY + ": reload Quests configuration"); + sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + "/quests a update " + ChatColor.DARK_GRAY + ": check for updates"); } sender.sendMessage(ChatColor.GRAY.toString() + ChatColor.STRIKETHROUGH + "-----=[" + ChatColor.RED + " requires permission: quests.admin " + ChatColor.GRAY.toString() + ChatColor.STRIKETHROUGH + "]=-----"); diff --git a/src/me/fatpigsarefat/quests/updater/Updater.java b/src/me/fatpigsarefat/quests/updater/Updater.java index 0dca333d..28cfde26 100644 --- a/src/me/fatpigsarefat/quests/updater/Updater.java +++ b/src/me/fatpigsarefat/quests/updater/Updater.java @@ -9,6 +9,7 @@ import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; public class Updater { @@ -19,6 +20,7 @@ public class Updater { private URL api; private Plugin plugin; private boolean updateReady; + private long lastCheck; public Updater(Plugin plugin) { this.plugin = plugin; @@ -35,7 +37,11 @@ public class Updater { } public boolean check() { + if (lastCheck != 0 && TimeUnit.MINUTES.convert(System.currentTimeMillis() - lastCheck, TimeUnit.MILLISECONDS) < 10) { + return updateReady; + } try { + lastCheck = System.currentTimeMillis(); URLConnection con = api.openConnection(); returnedVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine(); if (!returnedVersion.equals(installedVersion)) { |
