From 16d0b5c228dd8d981a0d79944c70248ea813d63b Mon Sep 17 00:00:00 2001 From: ementalo Date: Wed, 27 Jun 2012 13:35:39 +0100 Subject: package name change to net.ess3 --- .../src/net/ess3/update/tasks/InstallModule.java | 65 ++++++++++++++++++++++ .../src/net/ess3/update/tasks/SelfUpdate.java | 56 +++++++++++++++++++ .../src/net/ess3/update/tasks/Task.java | 7 +++ 3 files changed, 128 insertions(+) create mode 100644 EssentialsUpdate/src/net/ess3/update/tasks/InstallModule.java create mode 100644 EssentialsUpdate/src/net/ess3/update/tasks/SelfUpdate.java create mode 100644 EssentialsUpdate/src/net/ess3/update/tasks/Task.java (limited to 'EssentialsUpdate/src/net/ess3/update/tasks') 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; + } + } +} diff --git a/EssentialsUpdate/src/net/ess3/update/tasks/SelfUpdate.java b/EssentialsUpdate/src/net/ess3/update/tasks/SelfUpdate.java new file mode 100644 index 000000000..bc0d65b5e --- /dev/null +++ b/EssentialsUpdate/src/net/ess3/update/tasks/SelfUpdate.java @@ -0,0 +1,56 @@ +package net.ess3.update.tasks; + +import net.ess3.update.AbstractWorkListener; +import net.ess3.update.AbstractWorkListener; +import org.bukkit.Bukkit; + + +public class SelfUpdate extends AbstractWorkListener implements Task, Runnable +{ + private final transient AbstractWorkListener listener; + + public SelfUpdate(final AbstractWorkListener listener) + { + super(listener.getPlugin(), listener.getNewVersionInfo()); + this.listener = listener; + } + + @Override + public void onWorkAbort(final String message) + { + listener.onWorkAbort(message); + } + + @Override + public void onWorkDone(final String message) + { + listener.onWorkDone(message); + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable() + { + @Override + public void run() + { + Bukkit.getServer().reload(); + } + }); + } + + @Override + public void start() + { + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), this); + } + + @Override + public void run() + { + Bukkit.getScheduler().scheduleAsyncDelayedTask(getPlugin(), new Runnable() + { + @Override + public void run() + { + new InstallModule(SelfUpdate.this, "EssentialsUpdate").start(); + } + }); + } +} diff --git a/EssentialsUpdate/src/net/ess3/update/tasks/Task.java b/EssentialsUpdate/src/net/ess3/update/tasks/Task.java new file mode 100644 index 000000000..0dc421446 --- /dev/null +++ b/EssentialsUpdate/src/net/ess3/update/tasks/Task.java @@ -0,0 +1,7 @@ +package net.ess3.update.tasks; + + +public interface Task +{ + void start(); +} -- cgit v1.2.3