From 410c946faf599d139823dc55fc44fb0c60aa477e Mon Sep 17 00:00:00 2001 From: GJ Date: Mon, 11 Mar 2013 12:48:00 -0400 Subject: [PATCH] Tidying up Permission checks for /mcrank and /mctop --- .../nossr50/commands/player/McrankCommand.java | 14 +++++--------- .../nossr50/commands/player/MctopCommand.java | 12 ++++++------ .../runnables/commands/McrankCommandAsyncTask.java | 6 +----- .../runnables/commands/MctopCommandAsyncTask.java | 13 +------------ 4 files changed, 13 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java b/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java index b6eca1a1a..a7fe0591b 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java @@ -23,15 +23,15 @@ public class McrankCommand implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { switch (args.length) { case 0: + if (!(sender instanceof Player)) { + return false; + } + if (!Permissions.mcrank(sender)) { sender.sendMessage(command.getPermissionMessage()); return true; } - if (!(sender instanceof Player)) { - return false; - } - if (Config.getInstance().getUseMySQL()) { sqlDisplay(sender, sender.getName()); } @@ -94,11 +94,7 @@ public class McrankCommand implements CommandExecutor { for (SkillType skillType : SkillType.values()) { int[] rankInts = LeaderboardManager.getPlayerRank(playerName, skillType); - if (skillType.isChildSkill()) { - continue; - } - - if ((sender instanceof Player) && !Permissions.skillEnabled((Player) sender, skillType)) { + if ((sender instanceof Player && !Permissions.skillEnabled(sender, skillType)) || skillType.isChildSkill()) { continue; } diff --git a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java index 0982c3882..e86ee2dfc 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java @@ -79,18 +79,18 @@ public class MctopCommand implements CommandExecutor { if (sql) { if (skill.equalsIgnoreCase("all")) { - sqlDisplay(page, "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing", sender, command); + sqlDisplay(page, "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing", sender); } else { - sqlDisplay(page, skill, sender, command); + sqlDisplay(page, skill, sender); } } else { - flatfileDisplay(page, skill, sender, command); + flatfileDisplay(page, skill, sender); } } - private void flatfileDisplay(int page, String skill, CommandSender sender, Command command) { + private void flatfileDisplay(int page, String skill, CommandSender sender) { LeaderboardManager.updateLeaderboards(); // Make sure we have the latest information String[] info = LeaderboardManager.retrieveInfo(skill, page); @@ -122,7 +122,7 @@ public class MctopCommand implements CommandExecutor { sender.sendMessage(LocaleLoader.getString("Commands.mctop.Tip")); } - private void sqlDisplay(int page, String query, CommandSender sender, Command command) { - mcMMO.p.getServer().getScheduler().runTaskAsynchronously(mcMMO.p, new MctopCommandAsyncTask(page, query, sender, command)); + private void sqlDisplay(int page, String query, CommandSender sender) { + mcMMO.p.getServer().getScheduler().runTaskAsynchronously(mcMMO.p, new MctopCommandAsyncTask(page, query, sender)); } } diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java index 5b5216387..27ad089bb 100644 --- a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java @@ -32,11 +32,7 @@ public class McrankCommandAsyncTask implements Runnable { sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Player", playerName)); for (SkillType skillType : SkillType.values()) { - if (skillType.isChildSkill()) { - continue; - } - - if ((sender instanceof Player) && !Permissions.skillEnabled((Player) sender, skillType)) { + if ((sender instanceof Player && !Permissions.skillEnabled(sender, skillType)) || skillType.isChildSkill()) { continue; } diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java index 6dcd2f8b7..085974058 100644 --- a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java @@ -4,15 +4,12 @@ import java.util.ArrayList; import java.util.HashMap; import org.bukkit.ChatColor; -import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.database.DatabaseManager; -import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.locale.LocaleLoader; -import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.StringUtils; public class MctopCommandAsyncTask implements Runnable { @@ -20,23 +17,15 @@ public class MctopCommandAsyncTask implements Runnable { private CommandSender sender; private String query; private int page; - private Command command; - public MctopCommandAsyncTask(int page, String query, CommandSender sender, Command command) { + public MctopCommandAsyncTask(int page, String query, CommandSender sender) { this.page = page; this.query = query; this.sender = sender; - this.command = command; } @Override public void run() { - if (!query.equalsIgnoreCase("taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing")) { - if (!Permissions.mctop(sender, SkillType.getSkill(query))) { - sender.sendMessage(command.getPermissionMessage()); - return; - } - } String tablePrefix = Config.getInstance().getMySQLTablePrefix(); final HashMap> userslist = DatabaseManager.read("SELECT " + query + ", user, NOW() FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON (user_id = id) WHERE " + query + " > 0 ORDER BY " + query + " DESC, user LIMIT " + ((page * 10) - 10) + ",10"); mcMMO.p.getServer().getScheduler().scheduleSyncDelayedTask(mcMMO.p, new Runnable() {