RankCommandDisplayTask.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.gmail.nossr50.runnables.commands;
  2. import com.gmail.nossr50.core.MetadataConstants;
  3. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  4. import com.gmail.nossr50.mcMMO;
  5. import org.bukkit.command.CommandSender;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.scheduler.BukkitRunnable;
  8. import java.util.Map;
  9. /**
  10. * Display the results of RankCommandAsyncTask to the sender.
  11. */
  12. public class RankCommandDisplayTask extends BukkitRunnable {
  13. private final mcMMO pluginRef;
  14. private final Map<PrimarySkillType, Integer> skills;
  15. private final CommandSender sender;
  16. private final String playerName;
  17. private final boolean useBoard, useChat;
  18. RankCommandDisplayTask(mcMMO pluginRef, Map<PrimarySkillType, Integer> skills, CommandSender sender, String playerName, boolean useBoard, boolean useChat) {
  19. this.pluginRef = pluginRef;
  20. this.skills = skills;
  21. this.sender = sender;
  22. this.playerName = playerName;
  23. this.useBoard = useBoard;
  24. this.useChat = useChat;
  25. }
  26. @Override
  27. public void run() {
  28. if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
  29. displayBoard();
  30. }
  31. if (useChat) {
  32. displayChat();
  33. }
  34. ((Player) sender).removeMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, pluginRef);
  35. }
  36. private void displayChat() {
  37. // Player player = mcMMO.p.getServer().getPlayerExact(playerName);
  38. Integer rank;
  39. sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcrank.Heading"));
  40. sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcrank.Player", playerName));
  41. for (PrimarySkillType skill : PrimarySkillType.NON_CHILD_SKILLS) {
  42. // if (!skill.getPermissions(player)) {
  43. // continue;
  44. // }
  45. rank = skills.get(skill);
  46. sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcrank.Skill", skill.getName(), (rank == null ? pluginRef.getLocaleManager().getString("Commands.mcrank.Unranked") : rank)));
  47. }
  48. rank = skills.get(null);
  49. sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcrank.Overall", (rank == null ? pluginRef.getLocaleManager().getString("Commands.mcrank.Unranked") : rank)));
  50. }
  51. public void displayBoard() {
  52. if (sender.getName().equalsIgnoreCase(playerName)) {
  53. pluginRef.getScoreboardManager().showPlayerRankScoreboard((Player) sender, skills);
  54. } else {
  55. pluginRef.getScoreboardManager().showPlayerRankScoreboardOthers((Player) sender, playerName, skills);
  56. }
  57. }
  58. }