diff --git a/src/main/java/fr/xephi/authme/data/limbo/LimboPlayer.java b/src/main/java/fr/xephi/authme/data/limbo/LimboPlayer.java index 55f172b6..ddbe6d64 100644 --- a/src/main/java/fr/xephi/authme/data/limbo/LimboPlayer.java +++ b/src/main/java/fr/xephi/authme/data/limbo/LimboPlayer.java @@ -24,6 +24,8 @@ public class LimboPlayer { private final float flySpeed; private MyScheduledTask timeoutTask = null; private MessageTask messageTask = null; + private MyScheduledTask inter; + private LimboPlayerState state = LimboPlayerState.PASSWORD_REQUIRED; public LimboPlayer(Location loc, boolean operator, Collection groups, boolean fly, float walkSpeed, @@ -112,18 +114,19 @@ public class LimboPlayer { * * @param messageTask The message task to set */ - public void setMessageTask(MessageTask messageTask) { - if (this.messageTask != null) { - this.messageTask.cancel(); + public void setMessageTask(MessageTask messageTask, MyScheduledTask inter) { + if (this.messageTask != null && this.inter != null) { + this.inter.cancel(); } this.messageTask = messageTask; + this.inter = inter; } /** * Clears all tasks associated to the player. */ public void clearTasks() { - setMessageTask(null); + setMessageTask(null, null); setTimeoutTask(null); } diff --git a/src/main/java/fr/xephi/authme/data/limbo/LimboPlayerTaskManager.java b/src/main/java/fr/xephi/authme/data/limbo/LimboPlayerTaskManager.java index 7331a653..f6a970b3 100644 --- a/src/main/java/fr/xephi/authme/data/limbo/LimboPlayerTaskManager.java +++ b/src/main/java/fr/xephi/authme/data/limbo/LimboPlayerTaskManager.java @@ -53,8 +53,8 @@ class LimboPlayerTaskManager { if (interval > 0) { String[] joinMessage = messages.retrieveSingle(player, result.messageKey, result.args).split("\n"); MessageTask messageTask = new MessageTask(player, joinMessage); - bukkitService.runTaskTimer(messageTask, 2 * TICKS_PER_SECOND, interval * TICKS_PER_SECOND); - limbo.setMessageTask(messageTask); + MyScheduledTask task = bukkitService.runTaskTimer(messageTask, 2 * TICKS_PER_SECOND, (long) interval * TICKS_PER_SECOND); + limbo.setMessageTask(messageTask, task); } }