Răsfoiți Sursa

Clean up a little more from our permissions reworking.

GJ 12 ani în urmă
părinte
comite
75894c4419

+ 4 - 5
src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java

@@ -10,6 +10,7 @@ import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.util.Misc;
+import com.gmail.nossr50.util.Permissions;
 
 public class XprateCommand implements CommandExecutor {
     private static double originalRate = Config.getInstance().getExperienceGainsGlobalMultiplier();
@@ -20,9 +21,7 @@ public class XprateCommand implements CommandExecutor {
         String usage2 = LocaleLoader.getString("Commands.xprate.proper.1");
         String usage3 = LocaleLoader.getString("Commands.xprate.proper.2");
 
-        // DEPRECATED PERMISSION
-        boolean oldPermission = !CommandHelper.noCommandPermissions(sender, "mcmmo.admin");
-        if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate")) {
+        if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate") && !Permissions.admin((Player) sender)) {
             return true;
         }
 
@@ -31,7 +30,7 @@ public class XprateCommand implements CommandExecutor {
         switch (args.length) {
         case 1:
             if (args[0].equalsIgnoreCase("reset")) {
-                if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate.reset")) {
+                if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate.reset") && !Permissions.admin((Player) sender)) {
                     return true;
                 }
 
@@ -58,7 +57,7 @@ public class XprateCommand implements CommandExecutor {
 
         case 2:
             if (Misc.isInt(args[0])) {
-                if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate.set")) {
+                if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.xprate.set") && !Permissions.admin((Player) sender)) {
                     return true;
                 }
                 if (args[1].equalsIgnoreCase("true") || args[1].equalsIgnoreCase("false")) {

+ 37 - 26
src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java

@@ -10,49 +10,60 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.util.Permissions;
 import com.gmail.nossr50.util.Users;
 
 public class McabilityCommand implements CommandExecutor {
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
-        if (CommandHelper.noConsoleUsage(sender)) {
-            return true;
-        }
+        PlayerProfile profile;
+        String usage = LocaleLoader.getString("Commands.Usage.1", new Object[] {"mcability", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">"});
 
-        // DEPRECATED PERMISSION
-        boolean oldPermission = !CommandHelper.noCommandPermissions(sender, "mcmmo.commands.ability");
+        switch (args.length) {
+        case 0:
+            if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability") && !Permissions.mcAbility((Player) sender)) {
+                return true;
+            }
 
-        if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability")) {
-            return true;
-        }
+            profile = Users.getProfile((Player) sender);
+
+            if (profile.getAbilityUse()) {
+                sender.sendMessage(LocaleLoader.getString("Commands.Ability.Off"));
+            }
+            else {
+                sender.sendMessage(LocaleLoader.getString("Commands.Ability.On"));
+            }
 
-        PlayerProfile profile = null;
+            profile.toggleAbilityUse();
+            return true;
 
-        if(args.length > 0 && args[0] != null) {
-            if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability.others")) {
+        case 1:
+            if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability.others")) {
                 return true;
             }
 
             OfflinePlayer modifiedPlayer = mcMMO.p.getServer().getOfflinePlayer(args[0]);
             profile = Users.getProfile(modifiedPlayer);
-        }
-	else
-            profile = Users.getProfile((Player) sender);
 
-        if (profile == null) {
-            sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
-            return true;
-        }
+            // TODO:Not sure if we actually need a null check here
+            if (profile == null || !profile.isLoaded()) {
+                sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
+                return true;
+            }
 
-        if (profile.getAbilityUse()) {
-            sender.sendMessage(LocaleLoader.getString("Commands.Ability.Off"));
-        }
-        else {
-            sender.sendMessage(LocaleLoader.getString("Commands.Ability.On"));
-        }
+            if (profile.getAbilityUse()) {
+                ((Player) modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Ability.Off"));
+            }
+            else {
+                ((Player) modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Ability.On"));
+            }
 
-        profile.toggleAbilityUse();
+            profile.toggleAbilityUse();
+            return true;
 
-        return true;
+        default:
+            sender.sendMessage(usage);
+            return true;
+        }
     }
 }

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

@@ -564,6 +564,14 @@ public final class Permissions {
         return (hasPermission(player, "mcmmo.commands.skillreset") || skillReset(player));
     }
 
+    public static boolean mcAbilityCommand(Player player) {
+        return (hasPermission(player, "mcmmo.commands.mcability") || mcAbility(player));
+    }
+
+    /**
+     * @deprecated Use {@link #mcAbilityCommand(player)} instead.
+     */
+    @Deprecated
     public static boolean mcAbility(Player player) {
         return hasPermission(player, "mcmmo.commands.ability");
     }