diff --git a/Changelog.txt b/Changelog.txt index ca8f771cf..34c025f03 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Version 2.1.91 mcMMO is now more compatible with plugins that spawn arrows in unexpected ways, this fixes some NPE in mcMMO when using certain plugins + Fixed a bug where Unarmed was using the same CD timer for every player in the server (thanks slop_me) Version 2.1.90 Salvaged items now travel much slower towards the player diff --git a/pom.xml b/pom.xml index b2d5d1425..c8835b4d1 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.91-SNAPSHOT + 2.1.91 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java index 7f4c25c1c..a39cbccc5 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java @@ -10,8 +10,6 @@ import org.bukkit.inventory.ItemStack; public class Unarmed { public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked(); public static double berserkDamageModifier = 1.5; - public static long lastAttacked = 0; - public static long attackInterval = 750; public static void handleItemPickup(Player player, EntityPickupItemEvent event) { ItemStack[] storageContents = player.getInventory().getStorageContents(); diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java index 44a7b1047..4df9d7903 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java @@ -20,17 +20,29 @@ import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import org.bukkit.Material; import org.bukkit.block.BlockState; -import org.bukkit.block.data.BlockData; import org.bukkit.entity.Item; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; public class UnarmedManager extends SkillManager { + private long lastAttacked; + private long attackInterval; + public UnarmedManager(McMMOPlayer mcMMOPlayer) { super(mcMMOPlayer, PrimarySkillType.UNARMED); + initUnarmedPerPlayerVars(); } + /** + * Inits variables used for each player for unarmed + */ + private void initUnarmedPerPlayerVars() { + lastAttacked = 0; + attackInterval = 750; + } + + public boolean canActivateAbility() { return mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && Permissions.berserk(getPlayer()); } @@ -74,8 +86,6 @@ public class UnarmedManager extends SkillManager { return false; } - BlockData data = blockState.getBlockData(); - switch (blockState.getType()) { case STONE_BRICKS: if (!Unarmed.blockCrackerSmoothBrick) { @@ -150,7 +160,7 @@ public class UnarmedManager extends SkillManager { } public boolean isPunchingCooldownOver() { - return (Unarmed.lastAttacked + Unarmed.attackInterval) <= System.currentTimeMillis(); + return (lastAttacked + attackInterval) <= System.currentTimeMillis(); } public double getIronArmDamage() { @@ -181,4 +191,20 @@ public class UnarmedManager extends SkillManager { return false; } + + public long getLastAttacked() { + return lastAttacked; + } + + public void setLastAttacked(long lastAttacked) { + this.lastAttacked = lastAttacked; + } + + public long getAttackInterval() { + return attackInterval; + } + + public void setAttackInterval(long attackInterval) { + this.attackInterval = attackInterval; + } } diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 5b5aecb04..cd3ffb75a 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -166,7 +166,7 @@ public final class CombatUtils { applyScaledModifiers(initialDamage, finalDamage, event); startGainXp(mcMMOPlayer, target, PrimarySkillType.UNARMED); - Unarmed.lastAttacked = System.currentTimeMillis(); //Track how often the player is punching + unarmedManager.setLastAttacked(System.currentTimeMillis()); //Track how often the player is punching } private static void processTamingCombat(LivingEntity target, Player master, Wolf wolf, EntityDamageByEntityEvent event) {