浏览代码

Abilities no longer activate if you don't have permission

nossr50 6 年之前
父节点
当前提交
4ea5432561

+ 1 - 0
Changelog.txt

@@ -7,6 +7,7 @@ Key:
   ! Change
   - Removal
 Version 2.1.8
+    Fixed a bug where Abilities didn't check for permission nodes before activating
     MaxBonusLevel now has specific entries for Standard and Retro in advanced.yml
     MaxBonusLevel for Critical Strikes changed from 75/750 to 100/1000
     MaxBonusLevel of Dodge changed from 80/800 to 100/1000

+ 2 - 2
src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java

@@ -791,7 +791,7 @@ public class McMMOPlayer {
         ToolType tool = skill.getTool();
         SuperAbilityType ability = skill.getAbility();
 
-        if (getAbilityMode(ability)) {
+        if (getAbilityMode(ability) || !ability.getPermissions(player)) {
             return;
         }
 
@@ -894,7 +894,7 @@ public class McMMOPlayer {
          * Woodcutting & Axes need to be treated differently.
          * Basically the tool always needs to ready and we check to see if the cooldown is over when the user takes action
          */
-        if (ability.getPermissions(player) && tool.inHand(inHand) && !getToolPreparationMode(tool)) {
+        if (tool.inHand(inHand) && !getToolPreparationMode(tool)) {
             if (skill != PrimarySkillType.WOODCUTTING && skill != PrimarySkillType.AXES) {
                 int timeRemaining = calculateTimeRemaining(ability);
 

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java

@@ -46,7 +46,7 @@ public class SwordsManager extends SkillManager {
         if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.SWORDS_SERRATED_STRIKES))
             return false;
 
-        return mcMMOPlayer.getAbilityMode(SuperAbilityType.SERRATED_STRIKES) && Permissions.serratedStrikes(getPlayer());
+        return mcMMOPlayer.getAbilityMode(SuperAbilityType.SERRATED_STRIKES);
     }
 
     /**

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java

@@ -43,7 +43,7 @@ public class UnarmedManager extends SkillManager {
     }
 
     public boolean canUseBerserk() {
-        return mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK) && Permissions.berserk(getPlayer());
+        return mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK);
     }
 
     public boolean canDisarm(LivingEntity target) {

+ 2 - 1
src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java

@@ -38,7 +38,8 @@ public class WoodcuttingManager extends SkillManager {
     }
 
     public boolean canUseTreeFeller(ItemStack heldItem) {
-        return mcMMOPlayer.getAbilityMode(SuperAbilityType.TREE_FELLER) && Permissions.treeFeller(getPlayer()) && ItemUtils.isAxe(heldItem);
+        return mcMMOPlayer.getAbilityMode(SuperAbilityType.TREE_FELLER)
+                && ItemUtils.isAxe(heldItem);
     }
 
     protected boolean canGetDoubleDrops() {

+ 0 - 1
src/main/java/com/gmail/nossr50/util/Permissions.java

@@ -198,7 +198,6 @@ public final class Permissions {
     /*
      * PARTY
      */
-
     public static boolean partySizeBypass(Permissible permissible) { return permissible.hasPermission("mcmmo.bypass.partylimit" ); }
     public static boolean party(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.party"); }
     public static boolean partySubcommand(Permissible permissible, PartySubcommandType subcommand) { return permissible.hasPermission("mcmmo.commands.party." + subcommand.toString().toLowerCase()); }