#844 Run PurgeTask as repeating task and #784 write tests for PurgeTask

This commit is contained in:
ljacqu
2016-07-17 21:12:01 +02:00
parent 5953bfd012
commit ca4a64f398
6 changed files with 270 additions and 19 deletions
@@ -49,7 +49,7 @@ class PurgeExecutor {
* players and names.
*
* @param players the players to purge
* @param names names to purge (lowercase)
* @param names names to purge
*/
public void executePurge(Collection<OfflinePlayer> players, Collection<String> names) {
// Purge other data
@@ -91,7 +91,7 @@ public class PurgeService {
isPurging = true;
PurgeTask purgeTask = new PurgeTask(this, permissionsManager, sender, names, players);
bukkitService.runTaskAsynchronously(purgeTask);
bukkitService.runTaskTimer(purgeTask, 0, 1);
}
/**
@@ -104,9 +104,9 @@ class PurgeTask extends BukkitRunnable {
cancel();
// Show a status message
sendMessage(ChatColor.GREEN + "[AuthMe] Database has been purged correctly");
sendMessage(ChatColor.GREEN + "[AuthMe] Database has been purged successfully");
ConsoleLogger.info("Purge Finished!");
ConsoleLogger.info("Purge finished!");
purgeService.setPurging(false);
}
@@ -9,6 +9,9 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask;
import javax.inject.Inject;
@@ -123,6 +126,22 @@ public class BukkitService {
return Bukkit.getScheduler().runTaskLaterAsynchronously(authMe, task, delay);
}
/**
* Schedules the given task to repeatedly run until cancelled, starting after the
* specified number of server ticks.
*
* @param task the task to schedule
* @param delay the ticks to wait before running the task
* @param period the ticks to wait between runs
* @return a BukkitTask that contains the id number
* @throws IllegalArgumentException if plugin is null
* @throws IllegalStateException if this was already scheduled
* @see BukkitScheduler#runTaskTimer(Plugin, Runnable, long, long)
*/
public BukkitTask runTaskTimer(BukkitRunnable task, long delay, long period) {
return task.runTaskTimer(authMe, period, delay);
}
/**
* Broadcast a message to all players.
*