mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 07:06:45 +01:00
Create a utility method in SkillUtils to easily check ability cooldowns
This commit is contained in:
parent
95f15e68fe
commit
c6ca65f5c9
@ -854,7 +854,7 @@ public class McMMOPlayer {
|
||||
return;
|
||||
}
|
||||
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(profile.getSkillDATS(ability) * Misc.TIME_CONVERSION_FACTOR, ability.getCooldown(), player);
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(ability, profile, player);
|
||||
|
||||
if (timeRemaining > 0) {
|
||||
/*
|
||||
@ -924,7 +924,7 @@ public class McMMOPlayer {
|
||||
*/
|
||||
if (ability.getPermissions(player) && tool.inHand(inHand) && !getToolPreparationMode(tool)) {
|
||||
if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) {
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(profile.getSkillDATS(ability) * Misc.TIME_CONVERSION_FACTOR, ability.getCooldown(), player);
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(ability, profile, player);
|
||||
|
||||
if (!getAbilityMode(ability) && timeRemaining > 0) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining));
|
||||
|
@ -44,6 +44,6 @@ public class ScoreboardsListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onAbility(McMMOPlayerAbilityActivateEvent e) {
|
||||
ScoreboardManager.cooldownUpdate(e.getPlayer(), e.getSkill(), SkillUtils.calculateTimeLeft(UserManager.getPlayer(e.getPlayer()).getProfile().getSkillDATS(e.getAbility()) * Misc.TIME_CONVERSION_FACTOR, e.getAbility().getCooldown(), e.getPlayer()));
|
||||
ScoreboardManager.cooldownUpdate(e.getPlayer(), e.getSkill(), SkillUtils.calculateTimeLeft(e.getAbility(), UserManager.getPlayer(e.getPlayer()).getProfile(), e.getPlayer()));
|
||||
}
|
||||
}
|
||||
|
@ -288,7 +288,7 @@ public class MiningManager extends SkillManager {
|
||||
private boolean blastMiningCooldownOver() {
|
||||
Player player = getPlayer();
|
||||
PlayerProfile profile = getProfile();
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(profile.getSkillDATS(AbilityType.BLAST_MINING) * Misc.TIME_CONVERSION_FACTOR, AbilityType.BLAST_MINING.getCooldown(), player);
|
||||
int timeRemaining = SkillUtils.calculateTimeLeft(AbilityType.BLAST_MINING, profile, player);
|
||||
|
||||
if (timeRemaining > 0) {
|
||||
player.sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining));
|
||||
|
@ -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!
|
||||
|
Loading…
Reference in New Issue
Block a user