From 346e41a6e57513978cfa159fc463b0353b3b100b Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Mon, 3 Jan 2011 15:31:54 +0000 Subject: [PATCH] Formatting By: Dinnerbone --- .../main/java/org/bukkit/fillr/Checker.java | 182 ++++++------ .../java/org/bukkit/fillr/Downloader.java | 278 +++++++++--------- .../java/org/bukkit/fillr/FillReader.java | 121 ++++---- .../src/main/java/org/bukkit/fillr/Fillr.java | 1 - .../main/java/org/bukkit/fillr/Getter.java | 69 +++-- .../java/org/bukkit/fillr/PluginFilter.java | 16 +- .../main/java/org/bukkit/fillr/Updater.java | 190 ++++++------ 7 files changed, 427 insertions(+), 430 deletions(-) diff --git a/paper-api/src/main/java/org/bukkit/fillr/Checker.java b/paper-api/src/main/java/org/bukkit/fillr/Checker.java index cfb2a5b2d7..612957b2c1 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/Checker.java +++ b/paper-api/src/main/java/org/bukkit/fillr/Checker.java @@ -6,98 +6,100 @@ import org.bukkit.*; import org.bukkit.plugin.*; public class Checker { - private static String directory = Fillr.directory; + private static String directory = Fillr.directory; - /** - * Checks all the plugins in plugins/ for updates - * - * @param player - * The player to send info to - */ - void check(Player player) { - File folder = new File(directory); - File[] files = folder.listFiles(new PluginFilter()); - if (files.length == 0) { - player.sendMessage("No plugins to update."); - } else { - player.sendMessage("Status for " + files.length - + " plugins:"); - for (File file : files) { - PluginDescriptionFile pdfFile = Checker.getPDF(file); - if(pdfFile == null) continue; - checkForUpdate(file, player); - } - } - } + /** + * Checks all the plugins in plugins/ for updates + * + * @param player + * The player to send info to + */ + void check(Player player) { + File folder = new File(directory); + File[] files = folder.listFiles(new PluginFilter()); + if (files.length == 0) { + player.sendMessage("No plugins to update."); + } else { + player.sendMessage("Status for " + files.length + + " plugins:"); + for (File file : files) { + PluginDescriptionFile pdfFile = Checker.getPDF(file); + if (pdfFile == null) { + continue; + } + checkForUpdate(file, player); + } + } + } - /** - * Checks for an update for a given plugin - * - * @param file - * The plugin file to check for an update - * @param player - * The player to send info to - */ - private void checkForUpdate(File file, Player player) { - PluginDescriptionFile pdfFile = Checker.getPDF(file); - FillReader reader = needsUpdate(pdfFile); - if (reader != null) { - player.sendMessage(Color.RED + reader.getName() + " " - + pdfFile.getVersion() + " has an update to " - + reader.getCurrVersion()); - } else { - player.sendMessage(reader.getName() + " " + reader.getCurrVersion() - + " is up to date!"); - } - } + /** + * Checks for an update for a given plugin + * + * @param file + * The plugin file to check for an update + * @param player + * The player to send info to + */ + private void checkForUpdate(File file, Player player) { + PluginDescriptionFile pdfFile = Checker.getPDF(file); + FillReader reader = needsUpdate(pdfFile); + if (reader != null) { + player.sendMessage(Color.RED + reader.getName() + " " + + pdfFile.getVersion() + " has an update to " + + reader.getCurrVersion()); + } else { + player.sendMessage(reader.getName() + " " + reader.getCurrVersion() + + " is up to date!"); + } + } - /** - * Checks if a given plugin needs an update - * - * @param file - * The .yml file to check - * @return The FillReader for the online repo info on the plugin - */ - static FillReader needsUpdate(PluginDescriptionFile file) { - FillReader reader = new FillReader(file.getName()); - String version = file.getVersion(); - String currVersion = reader.getCurrVersion(); - String name = reader.getName(); - if (currVersion.equalsIgnoreCase(version) - && new File(directory, name + ".jar").exists()) { - return null; - } else { - return reader; - } - } - - /** - * Will grab the plugin's .yml file from the give file (hopefully a plugin). - * It'll throw it into a PluginDescriptionFile - * - * @param file - * The plugin (jar) file - * @return The PluginDescriptionFile representing the .yml - */ - static PluginDescriptionFile getPDF(File file) { - // TODO supports only jar files for now. how will yml's be stored in - // different languages? - if (file.getName().endsWith(".jar")) { - JarFile jarFile; - try { - jarFile = new JarFile(file); - JarEntry entry = jarFile.getJarEntry("plugin.yml"); - InputStream input = jarFile.getInputStream(entry); - return new PluginDescriptionFile(input); - } catch (IOException e) { - e.printStackTrace(); - return null; - } catch (InvalidDescriptionException e) { - e.printStackTrace(); - return null; - } - } else - return null; - } + /** + * Checks if a given plugin needs an update + * + * @param file + * The .yml file to check + * @return The FillReader for the online repo info on the plugin + */ + static FillReader needsUpdate(PluginDescriptionFile file) { + FillReader reader = new FillReader(file.getName()); + String version = file.getVersion(); + String currVersion = reader.getCurrVersion(); + String name = reader.getName(); + if (currVersion.equalsIgnoreCase(version) + && new File(directory, name + ".jar").exists()) { + return null; + } else { + return reader; + } + } + /** + * Will grab the plugin's .yml file from the give file (hopefully a plugin). + * It'll throw it into a PluginDescriptionFile + * + * @param file + * The plugin (jar) file + * @return The PluginDescriptionFile representing the .yml + */ + static PluginDescriptionFile getPDF(File file) { + // TODO supports only jar files for now. how will yml's be stored in + // different languages? + if (file.getName().endsWith(".jar")) { + JarFile jarFile; + try { + jarFile = new JarFile(file); + JarEntry entry = jarFile.getJarEntry("plugin.yml"); + InputStream input = jarFile.getInputStream(entry); + return new PluginDescriptionFile(input); + } catch (IOException e) { + e.printStackTrace(); + return null; + } catch (InvalidDescriptionException e) { + e.printStackTrace(); + return null; + } + } else { + return null; + } + } } diff --git a/paper-api/src/main/java/org/bukkit/fillr/Downloader.java b/paper-api/src/main/java/org/bukkit/fillr/Downloader.java index 7a73fe1ed7..8dc44c9543 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/Downloader.java +++ b/paper-api/src/main/java/org/bukkit/fillr/Downloader.java @@ -4,159 +4,161 @@ import org.bukkit.*; import org.bukkit.plugin.PluginDescriptionFile; import java.io.*; -import java.net.MalformedURLException; import java.net.URL; public class Downloader { - private static String directory = Fillr.directory; - private static String downloads = directory + File.separator + "downloads"; - private static String backup = "backup"; + private final static String directory = Fillr.directory; + private final static String downloads = directory + File.separator + "downloads"; + private final static String backup = "backup"; - /** - * Downloads the jar from a given url. If it is a compressed archive, it - * tries to get the .jars out of it - * - * @param url - * The url to download from - */ - static void downloadJar(String url) throws Exception { - int index = url.lastIndexOf('/'); - String name = url.substring(index + 1); + /** + * Downloads the jar from a given url. If it is a compressed archive, it + * tries to get the .jars out of it + * + * @param url + * The url to download from + */ + static void downloadJar(String url) throws Exception { + int index = url.lastIndexOf('/'); + String name = url.substring(index + 1); - File file = new File(directory, name); - if (url.endsWith(".jar") && file.exists()) - backupFile(file); + File file = new File(directory, name); + if (url.endsWith(".jar") && file.exists()) { + backupFile(file); + } - download(new URL(url), name, directory); - file = new File("plugins", name); - /*if (name.endsWith(".zip") || name.endsWith(".tar") - || name.endsWith(".rar") || name.endsWith(".7z")) { - unzipPlugin(file); - file.delete(); - }*/ - } + download(new URL(url), name, directory); + file = new File("plugins", name); + /*if (name.endsWith(".zip") || name.endsWith(".tar") + || name.endsWith(".rar") || name.endsWith(".7z")) { + unzipPlugin(file); + file.delete(); + }*/ + } - /** - * Downloads the file for a given plugin - * - * @param name - * The name of the plugin to download - * @param player - * The player to send info to - */ - void downloadFile(String name, Player player) throws Exception { - File file = new File(directory, name + ".jar"); - if (file.exists()) { - player.sendMessage("Downloading " + name + "'s file"); - PluginDescriptionFile pdfFile = Checker.getPDF(file); - FillReader reader = Checker.needsUpdate(pdfFile); - downloadFile(new URL(reader.getFile())); - player.sendMessage("Finished download"); - } else { - System.out.println("Can't find " + name); - } - } + /** + * Downloads the file for a given plugin + * + * @param name + * The name of the plugin to download + * @param player + * The player to send info to + */ + void downloadFile(String name, Player player) throws Exception { + File file = new File(directory, name + ".jar"); + if (file.exists()) { + player.sendMessage("Downloading " + name + "'s file"); + PluginDescriptionFile pdfFile = Checker.getPDF(file); + FillReader reader = Checker.needsUpdate(pdfFile); + downloadFile(new URL(reader.getFile())); + player.sendMessage("Finished download"); + } else { + System.out.println("Can't find " + name); + } + } - /** - * Downloads the file to the plugin/downloads directory - * - * @param u - * The url of the file to download - */ - private void downloadFile(URL u) throws Exception { - String name = u.getFile(); - int index = name.lastIndexOf('/'); - name = name.substring(index + 1); - download(u, name, downloads); - } + /** + * Downloads the file to the plugin/downloads directory + * + * @param u + * The url of the file to download + */ + private void downloadFile(URL u) throws Exception { + String name = u.getFile(); + int index = name.lastIndexOf('/'); + name = name.substring(index + 1); + download(u, name, downloads); + } - /** - * Downloads the file to a given directory with a given name - * - * @param u - * The url of the file to download - * @param name - * The name to give the file - * @param directory - * The directory to put the file - */ - private static void download(URL u, String name, String directory) - throws Exception { - InputStream inputStream = null; - // try { - inputStream = u.openStream(); + /** + * Downloads the file to a given directory with a given name + * + * @param u + * The url of the file to download + * @param name + * The name to give the file + * @param directory + * The directory to put the file + */ + private static void download(URL u, String name, String directory) + throws Exception { + InputStream inputStream = null; + // try { + inputStream = u.openStream(); - if (!new File(directory).exists()) - new File(directory).mkdir(); + if (!new File(directory).exists()) { + new File(directory).mkdir(); + } - File f = new File(directory, name); - if (f.exists()) - f.delete(); - f.createNewFile(); + File f = new File(directory, name); + if (f.exists()) { + f.delete(); + } + f.createNewFile(); - copyInputStream(inputStream, new BufferedOutputStream( - new FileOutputStream(f))); + copyInputStream(inputStream, new BufferedOutputStream( + new FileOutputStream(f))); - try { - if (inputStream != null) - inputStream.close(); - } catch (IOException ioe) { - System.out.println("[UPDATR]: Error closing inputStream"); - } - // } - } + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (IOException ioe) { + System.out.println("[UPDATR]: Error closing inputStream"); + } + // } + } - /** - * Decompresses a file! How nice. - * - * @param f - * the file to decompress - */ - private static void unzipPlugin(File f) { - try { - System.out.println("Extracting jars out of " + f.getName()); - //ExtractorUtil.extract(f, f.getAbsolutePath()); - } catch (Exception e) { - System.out.println("[UPDATR]: Error decompressing " + f.getName()); - } - } + /** + * Decompresses a file! How nice. + * + * @param f + * the file to decompress + */ + private static void unzipPlugin(File f) { + try { + System.out.println("Extracting jars out of " + f.getName()); + //ExtractorUtil.extract(f, f.getAbsolutePath()); + } catch (Exception e) { + System.out.println("[UPDATR]: Error decompressing " + f.getName()); + } + } - /** - * Copies an InputStream to an OutputStream! - * - * @param in - * InputStream - * @param out - * OutputStream - * @throws IOException - */ - private static final void copyInputStream(InputStream in, OutputStream out) - throws IOException { - byte[] buffer = new byte[1024]; - int len; + /** + * Copies an InputStream to an OutputStream! + * + * @param in + * InputStream + * @param out + * OutputStream + * @throws IOException + */ + private static final void copyInputStream(InputStream in, OutputStream out) + throws IOException { + byte[] buffer = new byte[1024]; + int len; - while ((len = in.read(buffer)) >= 0) - out.write(buffer, 0, len); + while ((len = in.read(buffer)) >= 0) { + out.write(buffer, 0, len); + } - in.close(); - out.close(); - } + in.close(); + out.close(); + } - - /** - * Moves the file to the backup folder. - * - * @param file - * The file to backup - */ - private static void backupFile(File file) { - if (file.exists()) { - System.out.println("Backing up old file: " + file.getName()); - if (!new File(backup).exists()) - new File(backup).mkdir(); - file.renameTo(new File(backup, file - .getName() + ".bak")); - } - } - -} \ No newline at end of file + /** + * Moves the file to the backup folder. + * + * @param file + * The file to backup + */ + private static void backupFile(File file) { + if (file.exists()) { + System.out.println("Backing up old file: " + file.getName()); + if (!new File(backup).exists()) { + new File(backup).mkdir(); + } + file.renameTo(new File(backup, file.getName() + ".bak")); + } + } +} diff --git a/paper-api/src/main/java/org/bukkit/fillr/FillReader.java b/paper-api/src/main/java/org/bukkit/fillr/FillReader.java index 58cfe5b0d2..ce94283a72 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/FillReader.java +++ b/paper-api/src/main/java/org/bukkit/fillr/FillReader.java @@ -1,6 +1,5 @@ package org.bukkit.fillr; -import java.util.*; import java.io.*; import java.net.URL; import java.net.URLConnection; @@ -13,70 +12,68 @@ import org.json.simple.parser.ParseException; * Grabs the latest info for a given plugin from fill.bukkit.org */ public class FillReader { - //TODO change this to what it will actually be... - private static String baseUrl = "http://taylorkelly.me/pnfo.php"; + //TODO change this to what it will actually be... + private static String baseUrl = "http://taylorkelly.me/pnfo.php"; + private String currVersion; + private String file; + private String name; + private String notes; + private boolean stable; - private String currVersion; - private String file; - private String name; - private String notes; - private boolean stable; - - public FillReader(String name) { - try { - String result = ""; - try { - URL url = new URL(baseUrl + "?name=" + name); - System.out.println(baseUrl + "?name=" + name); - URLConnection conn = url.openConnection(); - StringBuilder buf = new StringBuilder(); - BufferedReader rd = new BufferedReader(new InputStreamReader( - conn.getInputStream())); - String line; - while ((line = rd.readLine()) != null) { - buf.append(line); - } - result = buf.toString(); - rd.close(); - JSONParser parser = new JSONParser(); - Object obj; - obj = parser.parse(result); - JSONObject jsonObj = (JSONObject) obj; - this.currVersion = (String)jsonObj.get("plugin_version"); - this.name = (String)jsonObj.get("plugin_name"); - this.file = (String)jsonObj.get("plugin_file"); - this.stable = (Boolean)jsonObj.get("plugin_stable"); - this.notes = (String)jsonObj.get("plugin_notes"); - } catch (ParseException e) { - e.printStackTrace(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public String getCurrVersion() { - return currVersion; - } + public FillReader(String name) { + try { + String result = ""; + try { + URL url = new URL(baseUrl + "?name=" + name); + System.out.println(baseUrl + "?name=" + name); + URLConnection conn = url.openConnection(); + StringBuilder buf = new StringBuilder(); + BufferedReader rd = new BufferedReader(new InputStreamReader( + conn.getInputStream())); + String line; + while ((line = rd.readLine()) != null) { + buf.append(line); + } + result = buf.toString(); + rd.close(); + JSONParser parser = new JSONParser(); + Object obj; + obj = parser.parse(result); + JSONObject jsonObj = (JSONObject) obj; + this.currVersion = (String) jsonObj.get("plugin_version"); + this.name = (String) jsonObj.get("plugin_name"); + this.file = (String) jsonObj.get("plugin_file"); + this.stable = (Boolean) jsonObj.get("plugin_stable"); + this.notes = (String) jsonObj.get("plugin_notes"); + } catch (ParseException e) { + e.printStackTrace(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } - public String getFile() { - return file; - } + public String getCurrVersion() { + return currVersion; + } - public String getName() { - return name; - } - - public String getNotes() { - return notes; - } - - public void setStable(boolean stable) { - this.stable = stable; - } + public String getFile() { + return file; + } - public boolean isStable() { - return stable; - } + public String getName() { + return name; + } + public String getNotes() { + return notes; + } + + public void setStable(boolean stable) { + this.stable = stable; + } + + public boolean isStable() { + return stable; + } } diff --git a/paper-api/src/main/java/org/bukkit/fillr/Fillr.java b/paper-api/src/main/java/org/bukkit/fillr/Fillr.java index ce096be9e8..eafb205c81 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/Fillr.java +++ b/paper-api/src/main/java/org/bukkit/fillr/Fillr.java @@ -7,7 +7,6 @@ import org.bukkit.plugin.java.*; import org.bukkit.event.*; import java.io.File; -import java.util.logging.Logger; import org.bukkit.event.player.PlayerListener; public class Fillr extends JavaPlugin { diff --git a/paper-api/src/main/java/org/bukkit/fillr/Getter.java b/paper-api/src/main/java/org/bukkit/fillr/Getter.java index d71483b908..f38eda4557 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/Getter.java +++ b/paper-api/src/main/java/org/bukkit/fillr/Getter.java @@ -6,41 +6,38 @@ import org.bukkit.*; import org.bukkit.plugin.InvalidPluginException; public class Getter { - private Server server; - private static String directory = Fillr.directory; - - public Getter(Server server) { - this.server = server; - } + private Server server; + private static String directory = Fillr.directory; - public void get(String string, Player player) { - FillReader reader = new FillReader(string); - player.sendMessage("Downloading " + reader.getName() + " " - + reader.getCurrVersion()); - try { - Downloader.downloadJar(reader.getFile()); - if (reader.getNotes() != null && !reader.getNotes().equals("")) { - player.sendMessage("Notes: " + reader.getNotes()); - } - player.sendMessage("Finished Download!"); - enablePlugin(reader); - player.sendMessage("Loading " + reader.getName()); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - private void enablePlugin(FillReader update) { - final String name = update.getName(); - //TODO again with the implicit jar support... - File plugin = new File(directory, name + ".jar"); - try { - server.getPluginManager().loadPlugin(plugin); - } catch (InvalidPluginException e) { - e.printStackTrace(); - } - } - - + public Getter(Server server) { + this.server = server; + } + + public void get(String string, Player player) { + FillReader reader = new FillReader(string); + player.sendMessage("Downloading " + reader.getName() + " " + + reader.getCurrVersion()); + try { + Downloader.downloadJar(reader.getFile()); + if (reader.getNotes() != null && !reader.getNotes().equals("")) { + player.sendMessage("Notes: " + reader.getNotes()); + } + player.sendMessage("Finished Download!"); + enablePlugin(reader); + player.sendMessage("Loading " + reader.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void enablePlugin(FillReader update) { + final String name = update.getName(); + //TODO again with the implicit jar support... + File plugin = new File(directory, name + ".jar"); + try { + server.getPluginManager().loadPlugin(plugin); + } catch (InvalidPluginException e) { + e.printStackTrace(); + } + } } diff --git a/paper-api/src/main/java/org/bukkit/fillr/PluginFilter.java b/paper-api/src/main/java/org/bukkit/fillr/PluginFilter.java index f9a345f948..e1a568b986 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/PluginFilter.java +++ b/paper-api/src/main/java/org/bukkit/fillr/PluginFilter.java @@ -1,4 +1,5 @@ package org.bukkit.fillr; + import java.io.File; import java.io.FilenameFilter; @@ -6,12 +7,11 @@ import java.io.FilenameFilter; * Used to filter out non-updatr files */ public class PluginFilter implements FilenameFilter { - - public boolean accept(File file, String name) { - if(name.endsWith(".jar")) - return true; - else - return false; - } - + public boolean accept(File file, String name) { + if (name.endsWith(".jar")) { + return true; + } else { + return false; + } + } } diff --git a/paper-api/src/main/java/org/bukkit/fillr/Updater.java b/paper-api/src/main/java/org/bukkit/fillr/Updater.java index e006deaa7b..c429ed908c 100644 --- a/paper-api/src/main/java/org/bukkit/fillr/Updater.java +++ b/paper-api/src/main/java/org/bukkit/fillr/Updater.java @@ -4,105 +4,105 @@ import org.bukkit.*; import org.bukkit.plugin.*; import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.jar.*; public class Updater { - public static String directory = Fillr.directory; - private final Server server; - - Updater(Server server) { - this.server = server; - } + public static String directory = Fillr.directory; + private final Server server; - /** - * Checks and updates the plugins - * - * @param player - * The player to send info to - */ - void updateAll(Player player) { - File folder = new File(directory); - File[] files = folder.listFiles(new PluginFilter()); - if (files.length == 0) { - player.sendMessage("No plugins to update."); - } else { - player.sendMessage("Updating " - + files.length + " plugins:"); - for (File file : files) { - PluginDescriptionFile pdfFile = Checker.getPDF(file); - if(pdfFile == null) continue; - FillReader reader = Checker.needsUpdate(pdfFile); - if (reader != null) - update(reader, player); - } - } - } + Updater(Server server) { + this.server = server; + } - /** - * Checks if a given plugin needs an update, if it does, it updates it - * - * @param string - * The name of the plugin - * @param player - * The player to send info to - */ - void update(String string, Player player) { - //TODO so much .jars - File file = new File(directory, string + ".jar"); - if (file.exists()) { - PluginDescriptionFile pdfFile = Checker.getPDF(file); - FillReader reader = Checker.needsUpdate(pdfFile); - if (reader != null) { - update(reader, player); - } else { - player.sendMessage(string + " is up to date"); - } - } else { - player.sendMessage("Can't find " + string); - } - } + /** + * Checks and updates the plugins + * + * @param player + * The player to send info to + */ + void updateAll(Player player) { + File folder = new File(directory); + File[] files = folder.listFiles(new PluginFilter()); + if (files.length == 0) { + player.sendMessage("No plugins to update."); + } else { + player.sendMessage("Updating " + + files.length + " plugins:"); + for (File file : files) { + PluginDescriptionFile pdfFile = Checker.getPDF(file); + if (pdfFile == null) { + continue; + } + FillReader reader = Checker.needsUpdate(pdfFile); + if (reader != null) { + update(reader, player); + } + } + } + } - /** - * Downloads the plugin specified by the URLReader - * - * @param update - * The FillReader with all the plugin info - * @param player The player to send info to - */ - private void update(FillReader update, Player player) { - disablePlugin(update); - player.sendMessage("Disabling " + update.getName() + " for update"); - player.sendMessage("Downloading " + update.getName() + " " - + update.getCurrVersion()); - try { - Downloader.downloadJar(update.getFile()); - if (update.getNotes() != null && !update.getNotes().equals("")) { - player.sendMessage("Notes: " + update.getNotes()); - } - player.sendMessage("Finished Download!"); - enablePlugin(update); - player.sendMessage("Loading " + update.getName()); - } catch (Exception e) { - e.printStackTrace(); - } - } + /** + * Checks if a given plugin needs an update, if it does, it updates it + * + * @param string + * The name of the plugin + * @param player + * The player to send info to + */ + void update(String string, Player player) { + //TODO so much .jars + File file = new File(directory, string + ".jar"); + if (file.exists()) { + PluginDescriptionFile pdfFile = Checker.getPDF(file); + FillReader reader = Checker.needsUpdate(pdfFile); + if (reader != null) { + update(reader, player); + } else { + player.sendMessage(string + " is up to date"); + } + } else { + player.sendMessage("Can't find " + string); + } + } - void enablePlugin(FillReader update) { - final String name = update.getName(); - //TODO again with the implicit jar support... - File plugin = new File(directory, name + ".jar"); - try { - server.getPluginManager().loadPlugin(plugin); - } catch (InvalidPluginException e) { - e.printStackTrace(); - } - } + /** + * Downloads the plugin specified by the URLReader + * + * @param update + * The FillReader with all the plugin info + * @param player The player to send info to + */ + private void update(FillReader update, Player player) { + disablePlugin(update); + player.sendMessage("Disabling " + update.getName() + " for update"); + player.sendMessage("Downloading " + update.getName() + " " + + update.getCurrVersion()); + try { + Downloader.downloadJar(update.getFile()); + if (update.getNotes() != null && !update.getNotes().equals("")) { + player.sendMessage("Notes: " + update.getNotes()); + } + player.sendMessage("Finished Download!"); + enablePlugin(update); + player.sendMessage("Loading " + update.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } - private void disablePlugin(FillReader update) { - String name = update.getName(); - Plugin plugin = server.getPluginManager().getPlugin(name); - server.getPluginManager().disablePlugin(plugin); - } -} \ No newline at end of file + void enablePlugin(FillReader update) { + final String name = update.getName(); + //TODO again with the implicit jar support... + File plugin = new File(directory, name + ".jar"); + try { + server.getPluginManager().loadPlugin(plugin); + } catch (InvalidPluginException e) { + e.printStackTrace(); + } + } + + private void disablePlugin(FillReader update) { + String name = update.getName(); + Plugin plugin = server.getPluginManager().getPlugin(name); + server.getPluginManager().disablePlugin(plugin); + } +}