summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-10-26 20:25:09 +0200
committersnowleo <schneeleo@gmail.com>2011-10-26 20:25:09 +0200
commite8b8d26bdbe935fff57ab3ded6902e576355f995 (patch)
tree8863a227c387bd86fcb145f16bbec0e116de061f
parentd5cb9ab96556e9f438db688dd8f097f53089028a (diff)
downloadEssentials-e8b8d26bdbe935fff57ab3ded6902e576355f995.tar
Essentials-e8b8d26bdbe935fff57ab3ded6902e576355f995.tar.gz
Essentials-e8b8d26bdbe935fff57ab3ded6902e576355f995.tar.lz
Essentials-e8b8d26bdbe935fff57ab3ded6902e576355f995.tar.xz
Essentials-e8b8d26bdbe935fff57ab3ded6902e576355f995.zip
Basic automatic updates downloader
-rw-r--r--EssentialsUpdate/src/com/earth2me/essentials/update/UpdatesDownloader.java36
1 files changed, 31 insertions, 5 deletions
diff --git a/EssentialsUpdate/src/com/earth2me/essentials/update/UpdatesDownloader.java b/EssentialsUpdate/src/com/earth2me/essentials/update/UpdatesDownloader.java
index 717163726..d13d0d41b 100644
--- a/EssentialsUpdate/src/com/earth2me/essentials/update/UpdatesDownloader.java
+++ b/EssentialsUpdate/src/com/earth2me/essentials/update/UpdatesDownloader.java
@@ -1,9 +1,14 @@
package com.earth2me.essentials.update;
+import com.earth2me.essentials.update.tasks.InstallModule;
+import java.util.Iterator;
+import java.util.Map.Entry;
+import java.util.logging.Level;
+import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
-public class UpdatesDownloader extends WorkListener
+public class UpdatesDownloader extends WorkListener implements Runnable
{
public UpdatesDownloader(final Plugin plugin, final VersionInfo newVersionInfo)
{
@@ -12,17 +17,38 @@ public class UpdatesDownloader extends WorkListener
public void start()
{
+ iterator = getNewVersionInfo().getModules().entrySet().iterator();
+ Bukkit.getScheduler().scheduleAsyncDelayedTask(getPlugin(), this);
}
+ private transient Iterator<Entry<String, ModuleInfo>> iterator;
@Override
- public void onWorkAbort(String message)
+ public void run()
{
- throw new UnsupportedOperationException("Not supported yet.");
+ if (iterator.hasNext())
+ {
+ final Entry<String, ModuleInfo> entry = iterator.next();
+ if (Bukkit.getPluginManager().getPlugin(entry.getKey()) == null)
+ {
+ run();
+ }
+ else
+ {
+ new InstallModule(this, entry.getKey()).start();
+ }
+ }
}
@Override
- public void onWorkDone(String message)
+ public void onWorkAbort(final String message)
{
- throw new UnsupportedOperationException("Not supported yet.");
+ Bukkit.getLogger().log(Level.SEVERE, message);
+ }
+
+ @Override
+ public void onWorkDone(final String message)
+ {
+ Bukkit.getLogger().log(Level.INFO, message);
+ Bukkit.getScheduler().scheduleAsyncDelayedTask(getPlugin(), this);
}
}