diff --git a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/Challenge.java b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/Challenge.java index e79ac0601..bfec98d5a 100644 --- a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/Challenge.java +++ b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/Challenge.java @@ -149,7 +149,7 @@ public ItemStack getDisplayItem(ChallengeCompletion completion, boolean withCurr } else if (cooldown >= ChallengeLogic.MS_HOUR) { final int hours = (int) (cooldown / ChallengeLogic.MS_HOUR); lores.add(tr("\u00a74Requirements will reset in {0} hours.", hours)); - } else { + } else if (cooldown >= 0) { final int minutes = Math.round(cooldown / ChallengeLogic.MS_MIN); lores.add(tr("\u00a74Requirements will reset in {0} minutes.", minutes)); } diff --git a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletion.java b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletion.java index 343f5593a..bde4b07fa 100644 --- a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletion.java +++ b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletion.java @@ -32,11 +32,14 @@ public long getCooldownUntil() { @Override public boolean isOnCooldown() { - return cooldownUntil > System.currentTimeMillis(); + return cooldownUntil < 0 || cooldownUntil > System.currentTimeMillis(); } @Override public long getCooldownInMillis() { + if (cooldownUntil < 0) { + return -1; + } long now = System.currentTimeMillis(); return cooldownUntil > now ? cooldownUntil - now : 0; } diff --git a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletionLogic.java b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletionLogic.java index 8e3076c51..04f8a21df 100644 --- a/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletionLogic.java +++ b/uSkyBlock-Core/src/main/java/us/talabrek/ultimateskyblock/challenge/ChallengeCompletionLogic.java @@ -157,8 +157,13 @@ public void completeChallenge(PlayerInfo playerInfo, String challengeName) { if (challenges.containsKey(challengeName)) { ChallengeCompletion completion = challenges.get(challengeName); if (!completion.isOnCooldown()) { - long now = System.currentTimeMillis(); - completion.setCooldownUntil(now + uSkyBlock.getInstance().getChallengeLogic().getResetInMillis(challengeName)); + long resetInMillis = uSkyBlock.getInstance().getChallengeLogic().getResetInMillis(challengeName); + if (resetInMillis >= 0) { + long now = System.currentTimeMillis(); + completion.setCooldownUntil(now + resetInMillis); + } else { + completion.setCooldownUntil(resetInMillis); + } } completion.addTimesCompleted(); }