Merge pull request #41 from BONNe/autosaver

Implement AutoSaving
This commit is contained in:
tastybento 2018-12-21 12:48:13 -08:00 committed by GitHub
commit 5009729300
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import org.bukkit.Bukkit;
import bentobox.addon.challenges.commands.ChallengesCommand; import bentobox.addon.challenges.commands.ChallengesCommand;
import bentobox.addon.challenges.commands.admin.Challenges; import bentobox.addon.challenges.commands.admin.Challenges;
import bentobox.addon.challenges.listeners.ResetListener; import bentobox.addon.challenges.listeners.ResetListener;
import bentobox.addon.challenges.listeners.SaveListener;
import world.bentobox.bentobox.api.addons.Addon; import world.bentobox.bentobox.api.addons.Addon;
import world.bentobox.bentobox.api.commands.CompositeCommand; import world.bentobox.bentobox.api.commands.CompositeCommand;
@ -73,6 +74,8 @@ public class ChallengesAddon extends Addon {
} }
// Register the reset listener // Register the reset listener
this.registerListener(new ResetListener(this)); this.registerListener(new ResetListener(this));
// Register the autosave listener.
this.registerListener(new SaveListener(this));
// Done // Done
} }

View File

@ -0,0 +1,39 @@
package bentobox.addon.challenges.listeners;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldSaveEvent;
import bentobox.addon.challenges.ChallengesAddon;
/**
* This is Simple World Save event listener. On each world save, this method
* asks challenge manager to save its data.
*/
public class SaveListener implements Listener
{
public SaveListener(ChallengesAddon addon) {
this.addon = addon;
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onWorldSave(WorldSaveEvent e)
{
if (!this.addon.getChallengesManager().getAllChallengesList(e.getWorld()).isEmpty())
{
this.addon.getChallengesManager().save(e.isAsynchronous());
}
}
// ---------------------------------------------------------------------
// Section: Variables
// ---------------------------------------------------------------------
private ChallengesAddon addon;
}