mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-23 05:36:46 +01:00
Added Reduced Cooldown perk for donors.
This commit is contained in:
parent
fce02dc0e5
commit
8738036f6f
@ -279,7 +279,7 @@ public class BlastMining {
|
|||||||
AbilityType ability = AbilityType.BLAST_MINING;
|
AbilityType ability = AbilityType.BLAST_MINING;
|
||||||
|
|
||||||
/* Check Cooldown */
|
/* Check Cooldown */
|
||||||
if (!Skills.cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
|
if (!Skills.cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown(), player)) {
|
||||||
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + Skills.calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + Skills.calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -32,7 +32,7 @@ public class Item {
|
|||||||
int amount = inHand.getAmount();
|
int amount = inHand.getAmount();
|
||||||
|
|
||||||
if (Permissions.getInstance().chimaeraWing(player) && inHand.getTypeId() == Config.getInstance().getChimaeraItemId()) {
|
if (Permissions.getInstance().chimaeraWing(player) && inHand.getTypeId() == Config.getInstance().getChimaeraItemId()) {
|
||||||
if (Skills.cooldownOver(PP.getRecentlyHurt(), 60) && amount >= Config.getInstance().getChimaeraCost()) {
|
if (Skills.cooldownOver(PP.getRecentlyHurt(), 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
|
||||||
player.setItemInHand(new ItemStack(Config.getInstance().getChimaeraItemId(), amount - Config.getInstance().getChimaeraCost()));
|
player.setItemInHand(new ItemStack(Config.getInstance().getChimaeraItemId(), amount - Config.getInstance().getChimaeraCost()));
|
||||||
|
|
||||||
for (int y = 1; block.getY() + y < player.getWorld().getMaxHeight(); y++) {
|
for (int y = 1; block.getY() + y < player.getWorld().getMaxHeight(); y++) {
|
||||||
@ -52,7 +52,7 @@ public class Item {
|
|||||||
|
|
||||||
player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Pass"));
|
player.sendMessage(LocaleLoader.getString("Item.ChimaeraWing.Pass"));
|
||||||
}
|
}
|
||||||
else if (!Skills.cooldownOver(PP.getRecentlyHurt(), 60) && amount >= Config.getInstance().getChimaeraCost()) {
|
else if (!Skills.cooldownOver(PP.getRecentlyHurt(), 60, player) && amount >= Config.getInstance().getChimaeraCost()) {
|
||||||
player.sendMessage(LocaleLoader.getString("Item.Injured.Wait", new Object[] {Skills.calculateTimeLeft(PP.getRecentlyHurt(), 60)}));
|
player.sendMessage(LocaleLoader.getString("Item.Injured.Wait", new Object[] {Skills.calculateTimeLeft(PP.getRecentlyHurt(), 60)}));
|
||||||
}
|
}
|
||||||
else if (amount <= Config.getInstance().getChimaeraCost()) {
|
else if (amount <= Config.getInstance().getChimaeraCost()) {
|
||||||
|
@ -34,12 +34,25 @@ public class Skills {
|
|||||||
*
|
*
|
||||||
* @param oldTime The time the ability or item was last used
|
* @param oldTime The time the ability or item was last used
|
||||||
* @param cooldown The amount of time that must pass between uses
|
* @param cooldown The amount of time that must pass between uses
|
||||||
|
* @param player The player whose cooldown is being checked
|
||||||
* @return true if the cooldown is over, false otherwise
|
* @return true if the cooldown is over, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean cooldownOver(long oldTime, int cooldown){
|
public static boolean cooldownOver(long oldTime, int cooldown, Player player){
|
||||||
long currentTime = System.currentTimeMillis();
|
long currentTime = System.currentTimeMillis();
|
||||||
|
int adjustedCooldown = cooldown;
|
||||||
|
|
||||||
if (currentTime - oldTime >= (cooldown * TIME_CONVERSION_FACTOR)) {
|
//Reduced Cooldown Donor Perks
|
||||||
|
if (player.hasPermission("mcmmo.perks.cooldowns.halved")) {
|
||||||
|
adjustedCooldown = adjustedCooldown / 2;
|
||||||
|
}
|
||||||
|
else if (player.hasPermission("mcmmo.perks.cooldowns.thirded")) {
|
||||||
|
adjustedCooldown = adjustedCooldown / 3;
|
||||||
|
}
|
||||||
|
else if (player.hasPermission("mcmmo.perks.cooldowns.quartered")) {
|
||||||
|
adjustedCooldown = adjustedCooldown / 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentTime - oldTime >= (adjustedCooldown * TIME_CONVERSION_FACTOR)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -105,7 +118,7 @@ public class Skills {
|
|||||||
*/
|
*/
|
||||||
if (ability.getPermissions(player) && tool.inHand(inHand) && !PP.getToolPreparationMode(tool)) {
|
if (ability.getPermissions(player) && tool.inHand(inHand) && !PP.getToolPreparationMode(tool)) {
|
||||||
if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) {
|
if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) {
|
||||||
if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
|
if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown(), player)) {
|
||||||
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -383,7 +396,7 @@ public class Skills {
|
|||||||
* We show them the too tired message when they take action.
|
* We show them the too tired message when they take action.
|
||||||
*/
|
*/
|
||||||
if (type == SkillType.WOODCUTTING || type == SkillType.AXES) {
|
if (type == SkillType.WOODCUTTING || type == SkillType.AXES) {
|
||||||
if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown())) {
|
if (!PP.getAbilityMode(ability) && !cooldownOver(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown(), player)) {
|
||||||
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
player.sendMessage(LocaleLoader.getString("Skills.TooTired") + ChatColor.YELLOW + " (" + calculateTimeLeft(PP.getSkillDATS(ability) * TIME_CONVERSION_FACTOR, ability.getCooldown()) + "s)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -396,7 +409,7 @@ public class Skills {
|
|||||||
ticks = maxTicks;
|
ticks = maxTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PP.getAbilityMode(ability) && cooldownOver(PP.getSkillDATS(ability), ability.getCooldown())) {
|
if (!PP.getAbilityMode(ability) && cooldownOver(PP.getSkillDATS(ability), ability.getCooldown(), player)) {
|
||||||
player.sendMessage(ability.getAbilityOn());
|
player.sendMessage(ability.getAbilityOn());
|
||||||
|
|
||||||
for (Player y : player.getWorld().getPlayers()) {
|
for (Player y : player.getWorld().getPlayers()) {
|
||||||
|
@ -138,6 +138,22 @@ permissions:
|
|||||||
mcmmo.tools.*: true
|
mcmmo.tools.*: true
|
||||||
mcmmo.admin:
|
mcmmo.admin:
|
||||||
description: Allows access to mmoupdate and other sensitive commands
|
description: Allows access to mmoupdate and other sensitive commands
|
||||||
|
mcmmo.perks.cooldowns:
|
||||||
|
default: false
|
||||||
|
description: Reduced cooldown perks typically given to donors or VIPs
|
||||||
|
children:
|
||||||
|
mcmmo.perks.cooldowns.quartered: true
|
||||||
|
mcmmo.perks.cooldowns.thirded: true
|
||||||
|
mcmmo.perks.cooldowns.halved: true
|
||||||
|
mcmmo.perks.cooldowns.quartered:
|
||||||
|
default: false
|
||||||
|
description: Cuts cooldowns down by 1/4
|
||||||
|
mcmmo.perks.cooldowns.thirded:
|
||||||
|
default: false
|
||||||
|
description: Cuts cooldowns down by 1/3
|
||||||
|
mcmmo.perks.cooldowns.halved:
|
||||||
|
default: false
|
||||||
|
description: Cuts cooldowns down by 1/2
|
||||||
mcmmo.perks.xp:
|
mcmmo.perks.xp:
|
||||||
default: false
|
default: false
|
||||||
description: XP Perks typically given to donors or VIPs
|
description: XP Perks typically given to donors or VIPs
|
||||||
|
Loading…
Reference in New Issue
Block a user