diff --git a/src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java b/src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java index d533d5c7b..791d9afc6 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/XprateCommand.java +++ b/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")) { diff --git a/src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java index 5f02aa862..210c48c95 100644 --- a/src/main/java/com/gmail/nossr50/commands/mc/McabilityCommand.java +++ b/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)) { + PlayerProfile profile; + String usage = LocaleLoader.getString("Commands.Usage.1", new Object[] {"mcability", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">"}); + + switch (args.length) { + case 0: + if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability") && !Permissions.mcAbility((Player) sender)) { + 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")); + } + + profile.toggleAbilityUse(); return true; - } - // DEPRECATED PERMISSION - boolean oldPermission = !CommandHelper.noCommandPermissions(sender, "mcmmo.commands.ability"); - - if (!oldPermission && CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcability")) { - return true; - } - - PlayerProfile profile = null; - - 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")); + // 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()) { + ((Player) modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Ability.Off")); + } + else { + ((Player) modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Ability.On")); + } + + profile.toggleAbilityUse(); + return true; + + default: + sender.sendMessage(usage); return true; } - - if (profile.getAbilityUse()) { - sender.sendMessage(LocaleLoader.getString("Commands.Ability.Off")); - } - else { - sender.sendMessage(LocaleLoader.getString("Commands.Ability.On")); - } - - profile.toggleAbilityUse(); - - return true; } } diff --git a/src/main/java/com/gmail/nossr50/util/Permissions.java b/src/main/java/com/gmail/nossr50/util/Permissions.java index 2e37336de..1a126e741 100644 --- a/src/main/java/com/gmail/nossr50/util/Permissions.java +++ b/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"); }