diff options
author | ementalo <ementalodev@gmx.co.uk> | 2012-07-17 12:26:55 +0100 |
---|---|---|
committer | ementalo <ementalodev@gmx.co.uk> | 2012-07-17 14:21:03 +0100 |
commit | a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3 (patch) | |
tree | 2aa10b6300f6c8d3cb2b298c124180fade74857a /EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java | |
parent | 3c385e69271dfe8530fadc3f67e13ee495e4b0e1 (diff) | |
parent | 9f05e43ecf8e6e1a8fcaef757678e762f0d82573 (diff) | |
download | Essentials-a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3.tar Essentials-a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3.tar.gz Essentials-a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3.tar.lz Essentials-a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3.tar.xz Essentials-a661bce7b3de3f53e2b7b79c1283f0affa6fe9c3.zip |
Merge of server-layer branch
Diffstat (limited to 'EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java')
-rw-r--r-- | EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java b/EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java new file mode 100644 index 000000000..1f7742026 --- /dev/null +++ b/EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java @@ -0,0 +1,65 @@ +package net.ess3.update.tasks; + +import net.ess3.update.AbstractWorkListener; +import net.ess3.update.GetFile; +import net.ess3.update.AbstractWorkListener; +import net.ess3.update.GetFile; +import net.ess3.update.ModuleInfo; +import net.ess3.update.VersionInfo; +import java.io.File; +import java.net.URL; +import java.util.logging.Level; + +import net.ess3.update.VersionInfo; +import org.bukkit.Bukkit; + + +public class InstallModule implements Runnable, Task +{ + protected final transient AbstractWorkListener listener; + private final transient String moduleName; + private final transient String fileName; + + public InstallModule(final AbstractWorkListener listener, final String moduleName) + { + this(listener, moduleName, moduleName + ".jar"); + } + + public InstallModule(final AbstractWorkListener listener, final String moduleName, final String fileName) + { + this.listener = listener; + this.moduleName = moduleName; + this.fileName = fileName; + } + + @Override + public void start() + { + Bukkit.getScheduler().scheduleAsyncDelayedTask(listener.getPlugin(), this); + } + + @Override + public void run() + { + final VersionInfo info = listener.getNewVersionInfo(); + final ModuleInfo module = info.getModules().get(moduleName); + if (module == null) + { + listener.onWorkAbort("Module " + moduleName + " not found in VersionInfo."); + return; + } + try + { + final URL downloadUrl = module.getUrl(); + final GetFile getFile = new GetFile(downloadUrl); + getFile.saveTo(new File(listener.getPlugin().getServer().getUpdateFolderFile(), fileName), module.getHash()); + listener.onWorkDone("Module " + moduleName + " downloaded."); + } + catch (Exception ex) + { + Bukkit.getLogger().log(Level.SEVERE, "Failed to download module " + moduleName + " to " + fileName, ex); + listener.onWorkAbort("An error occured, please check your server log."); + return; + } + } +} |