diff --git a/pom.xml b/pom.xml index be8053d6..6ef11fc2 100644 --- a/pom.xml +++ b/pom.xml @@ -339,6 +339,10 @@ com.google.thirdparty fr.xephi.authme.libs.com.google.thirdparty + + com.cryptomorin.xseries + fr.xephi.authme.libs.xseries + com.google.j2objc fr.xephi.authme.libs.com.google.j2objc diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 85751661..cdcf9ac6 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -49,7 +49,6 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitScheduler; import org.jetbrains.annotations.NotNull; import javax.inject.Inject; @@ -259,7 +258,6 @@ public class AuthMe extends JavaPlugin { injector.register(AuthMe.class, this); injector.register(Server.class, getServer()); injector.register(PluginManager.class, getServer().getPluginManager()); - injector.register(BukkitScheduler.class, getServer().getScheduler()); injector.provide(DataFolder.class, getDataFolder()); injector.registerProvider(Settings.class, SettingsProvider.class); injector.registerProvider(DataSource.class, DataSourceProvider.class); diff --git a/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java b/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java index 02f17e95..705f3bcc 100644 --- a/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java +++ b/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java @@ -1,5 +1,6 @@ package fr.xephi.authme.initialization; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.datasource.DataSource; @@ -18,7 +19,6 @@ import org.bstats.bukkit.Metrics; import org.bstats.charts.SimplePie; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; import javax.inject.Inject; import java.util.List; @@ -96,7 +96,7 @@ public class OnStartupTasks { if (!settings.getProperty(RECALL_PLAYERS)) { return; } - bukkitService.runTaskTimerAsynchronously(new BukkitRunnable() { + bukkitService.runTaskTimerAsynchronously(new UniversalRunnable() { @Override public void run() { List loggedPlayersWithEmptyMail = dataSource.getLoggedPlayersWithEmptyMail(); diff --git a/src/main/java/fr/xephi/authme/initialization/TaskCloser.java b/src/main/java/fr/xephi/authme/initialization/TaskCloser.java index e60f1135..4cd6daa9 100644 --- a/src/main/java/fr/xephi/authme/initialization/TaskCloser.java +++ b/src/main/java/fr/xephi/authme/initialization/TaskCloser.java @@ -25,6 +25,7 @@ public class TaskCloser implements Runnable { @Override public void run() { + scheduler.cancelTasks(); if (dataSource != null) { dataSource.closeConnection(); } diff --git a/src/main/java/fr/xephi/authme/service/BukkitService.java b/src/main/java/fr/xephi/authme/service/BukkitService.java index 3f6a87aa..98b92867 100644 --- a/src/main/java/fr/xephi/authme/service/BukkitService.java +++ b/src/main/java/fr/xephi/authme/service/BukkitService.java @@ -1,5 +1,7 @@ package fr.xephi.authme.service; +import com.github.Anon8281.universalScheduler.UniversalRunnable; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import fr.xephi.authme.AuthMe; import fr.xephi.authme.initialization.SettingsDependent; import fr.xephi.authme.settings.Settings; @@ -16,7 +18,6 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Event; -import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; import javax.inject.Inject; @@ -167,7 +168,7 @@ public class BukkitService implements SettingsDependent { if (useAsyncTasks) { runTaskAsynchronously(task); } else { - task.run(); + runTask(task); } } @@ -200,7 +201,7 @@ public class BukkitService implements SettingsDependent { * @throws IllegalArgumentException if task is null * @throws IllegalStateException if this was already scheduled */ - public BukkitTask runTaskTimerAsynchronously(BukkitRunnable task, long delay, long period) { + public MyScheduledTask runTaskTimerAsynchronously(UniversalRunnable task, long delay, long period) { return task.runTaskTimerAsynchronously(authMe, delay, period); } @@ -215,7 +216,7 @@ public class BukkitService implements SettingsDependent { * @throws IllegalArgumentException if plugin is null * @throws IllegalStateException if this was already scheduled */ - public BukkitTask runTaskTimer(BukkitRunnable task, long delay, long period) { + public MyScheduledTask runTaskTimer(UniversalRunnable task, long delay, long period) { return task.runTaskTimer(authMe, delay, period); } diff --git a/src/main/java/fr/xephi/authme/task/MessageTask.java b/src/main/java/fr/xephi/authme/task/MessageTask.java index cf4366d9..dd11e8ef 100644 --- a/src/main/java/fr/xephi/authme/task/MessageTask.java +++ b/src/main/java/fr/xephi/authme/task/MessageTask.java @@ -1,12 +1,12 @@ package fr.xephi.authme.task; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; /** * Message shown to a player in a regular interval as long as he is not logged in. */ -public class MessageTask extends BukkitRunnable { +public class MessageTask extends UniversalRunnable { private final Player player; private final String[] message; diff --git a/src/main/java/fr/xephi/authme/task/purge/PurgeTask.java b/src/main/java/fr/xephi/authme/task/purge/PurgeTask.java index 5c4a8707..15ab6552 100644 --- a/src/main/java/fr/xephi/authme/task/purge/PurgeTask.java +++ b/src/main/java/fr/xephi/authme/task/purge/PurgeTask.java @@ -1,5 +1,6 @@ package fr.xephi.authme.task.purge; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.output.ConsoleLoggerFactory; import fr.xephi.authme.permission.PermissionsManager; @@ -9,14 +10,13 @@ import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; import java.util.HashSet; import java.util.Locale; import java.util.Set; import java.util.UUID; -class PurgeTask extends BukkitRunnable { +class PurgeTask extends UniversalRunnable { //how many players we should check for each tick private static final int INTERVAL_CHECK = 5;