1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-16 11:37:30 +02:00

Check threading on backup init.

This commit is contained in:
KHobbits
2013-04-13 23:10:01 +01:00
parent 13baa68ec6
commit 79cbcd6b00
2 changed files with 24 additions and 9 deletions

View File

@@ -25,16 +25,33 @@ public class Backup implements Runnable
server = ess.getServer(); server = ess.getServer();
if (server.getOnlinePlayers().length > 0) if (server.getOnlinePlayers().length > 0)
{ {
startTask(); ess.runTaskAsynchronously(new Runnable()
{
@Override
public void run()
{
startTask();
}
});
} }
} }
void onPlayerJoin() public void onPlayerJoin()
{ {
startTask(); startTask();
} }
private void startTask() public void cleanup()
{
running = false;
if (taskId != -1)
{
server.getScheduler().cancelTask(taskId);
}
taskId = -1;
}
private synchronized void startTask()
{ {
if (!running) if (!running)
{ {
@@ -61,7 +78,8 @@ public class Backup implements Runnable
{ {
return; return;
} }
if ("save-all".equalsIgnoreCase(command)) { if ("save-all".equalsIgnoreCase(command))
{
final CommandSender cs = server.getConsoleSender(); final CommandSender cs = server.getConsoleSender();
server.dispatchCommand(cs, "save-all"); server.dispatchCommand(cs, "save-all");
active = false; active = false;
@@ -123,11 +141,7 @@ public class Backup implements Runnable
server.dispatchCommand(cs, "save-on"); server.dispatchCommand(cs, "save-on");
if (server.getOnlinePlayers().length == 0) if (server.getOnlinePlayers().length == 0)
{ {
running = false; cleanup();
if (taskId != -1)
{
server.getScheduler().cancelTask(taskId);
}
} }
active = false; active = false;
LOGGER.log(Level.INFO, _("backupFinished")); LOGGER.log(Level.INFO, _("backupFinished"));

View File

@@ -293,6 +293,7 @@ public class Essentials extends JavaPlugin implements IEssentials
} }
cleanupOpenInventories(); cleanupOpenInventories();
i18n.onDisable(); i18n.onDisable();
backup.cleanup();
Economy.setEss(null); Economy.setEss(null);
Trade.closeLog(); Trade.closeLog();
} }