McrankCommand.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.gmail.nossr50.commands.mc;
  2. import org.bukkit.Bukkit;
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandExecutor;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import com.gmail.nossr50.config.Config;
  9. import com.gmail.nossr50.datatypes.SkillType;
  10. import com.gmail.nossr50.runnables.mcRankAsync;
  11. import com.gmail.nossr50.util.Leaderboard;
  12. import com.gmail.nossr50.util.Misc;
  13. public class McrankCommand implements CommandExecutor {
  14. @Override
  15. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  16. if(!Config.getInstance().getUseMySQL())
  17. Leaderboard.updateLeaderboards(); //Make sure the information is up to date
  18. if(sender instanceof Player) {
  19. Player player = (Player) sender;
  20. String playerName;
  21. switch(args.length){
  22. case 0:
  23. playerName = player.getName();
  24. break;
  25. case 1:
  26. playerName = args[0];
  27. break;
  28. default:
  29. return false;
  30. }
  31. sender.sendMessage(ChatColor.GOLD + "-=PERSONAL RANKINGS=-");
  32. sender.sendMessage(ChatColor.RED+"TARGET: "+ChatColor.WHITE+playerName);
  33. if(Config.getInstance().getUseMySQL()) {
  34. sqlDisplay(sender, playerName);
  35. } else {
  36. flatfileDisplay(sender, playerName);
  37. }
  38. } else {
  39. sender.sendMessage("Command currently not supported for console.");
  40. }
  41. return true;
  42. }
  43. public void flatfileDisplay(CommandSender sender, String playerName) {
  44. for (SkillType skillType : SkillType.values()) {
  45. if (skillType.equals(SkillType.ALL))
  46. continue; // We want the overall ranking to be at the bottom
  47. sender.sendMessage(ChatColor.YELLOW + Misc.getCapitalized(skillType.name()) + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, skillType));
  48. }
  49. sender.sendMessage(ChatColor.YELLOW + "Overall" + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, SkillType.ALL));
  50. }
  51. private void sqlDisplay(CommandSender sender, String playerName) {
  52. Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getPluginManager().getPlugin("mcMMO"), new mcRankAsync(playerName, sender));
  53. }
  54. }