mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-28 03:34:43 +02:00
Create a utility method in SkillUtils to easily check ability cooldowns
This commit is contained in:
@ -415,7 +415,7 @@ public class ScoreboardWrapper {
|
||||
if (targetSkill != SkillType.MINING) {
|
||||
AbilityType ab = targetSkill.getAbility();
|
||||
Score cooldown = sidebarObj.getScore(ScoreboardManager.abilityLabelsSkill.get(ab));
|
||||
int seconds = SkillUtils.calculateTimeLeft(profile.getSkillDATS(ab) * Misc.TIME_CONVERSION_FACTOR, ab.getCooldown(), bukkitPlayer);
|
||||
int seconds = SkillUtils.calculateTimeLeft(ab, profile, bukkitPlayer);
|
||||
seconds = (seconds <= 0) ? 0 : seconds;
|
||||
if (seconds == 0) {
|
||||
cooldown.setScore(0);
|
||||
@ -431,8 +431,8 @@ public class ScoreboardWrapper {
|
||||
AbilityType bm = AbilityType.BLAST_MINING;
|
||||
Score cooldownSB = sidebarObj.getScore(ScoreboardManager.abilityLabelsSkill.get(sb));
|
||||
Score cooldownBM = sidebarObj.getScore(ScoreboardManager.abilityLabelsSkill.get(bm));
|
||||
int secondsSB = SkillUtils.calculateTimeLeft(profile.getSkillDATS(sb) * Misc.TIME_CONVERSION_FACTOR, sb.getCooldown(), bukkitPlayer);
|
||||
int secondsBM = SkillUtils.calculateTimeLeft(profile.getSkillDATS(bm) * Misc.TIME_CONVERSION_FACTOR, bm.getCooldown(), bukkitPlayer);
|
||||
int secondsSB = SkillUtils.calculateTimeLeft(sb, profile, bukkitPlayer);
|
||||
int secondsBM = SkillUtils.calculateTimeLeft(bm, profile, bukkitPlayer);
|
||||
secondsSB = (secondsSB <= 0) ? 0 : secondsSB;
|
||||
secondsBM = (secondsBM <= 0) ? 0 : secondsBM;
|
||||
if (secondsSB == 0 && secondsBM == 0) {
|
||||
@ -452,7 +452,7 @@ public class ScoreboardWrapper {
|
||||
case COOLDOWNS_BOARD:
|
||||
boolean anyCooldownsActive = false;
|
||||
for (AbilityType ability : AbilityType.NORMAL_ABILITIES) {
|
||||
int seconds = SkillUtils.calculateTimeLeft(profile.getSkillDATS(ability) * Misc.TIME_CONVERSION_FACTOR, ability.getCooldown(), bukkitPlayer);
|
||||
int seconds = SkillUtils.calculateTimeLeft(ability, profile, bukkitPlayer);
|
||||
seconds = (seconds <= 0) ? 0 : seconds;
|
||||
if (seconds != 0) {
|
||||
anyCooldownsActive = true;
|
||||
|
@ -16,6 +16,7 @@ import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
import com.gmail.nossr50.config.HiddenConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.datatypes.skills.AbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
@ -53,6 +54,19 @@ public class SkillUtils {
|
||||
return (int) (((deactivatedTimeStamp + (PerksUtils.handleCooldownPerks(player, cooldown) * Misc.TIME_CONVERSION_FACTOR)) - System.currentTimeMillis()) / Misc.TIME_CONVERSION_FACTOR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the time remaining until the ability's cooldown expires.
|
||||
*
|
||||
* @param ability AbilityType whose cooldown to check
|
||||
* @param profile The PlayerProfile to get the cooldown from
|
||||
* @param player The Player to check for cooldown perks
|
||||
*
|
||||
* @return the number of seconds remaining before the cooldown expires
|
||||
*/
|
||||
public static int calculateTimeLeft(AbilityType ability, PlayerProfile profile, Player player) {
|
||||
return calculateTimeLeft(profile.getSkillDATS(ability) * Misc.TIME_CONVERSION_FACTOR, ability.getCooldown(), player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the cooldown has expired.
|
||||
* This does NOT account for cooldown perks!
|
||||
|
Reference in New Issue
Block a user