McrankCommandDisplayTask.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.gmail.nossr50.runnables.commands;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.locale.LocaleLoader;
  4. import com.gmail.nossr50.mcMMO;
  5. import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
  6. import com.gmail.nossr50.util.skills.SkillTools;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.scheduler.BukkitRunnable;
  10. import java.util.Map;
  11. /**
  12. * Display the results of McrankCommandAsyncTask to the sender.
  13. */
  14. public class McrankCommandDisplayTask extends BukkitRunnable {
  15. private final Map<PrimarySkillType, Integer> skills;
  16. private final CommandSender sender;
  17. private final String playerName;
  18. private final boolean useBoard, useChat;
  19. McrankCommandDisplayTask(Map<PrimarySkillType, Integer> skills, CommandSender sender, String playerName, boolean useBoard, boolean useChat) {
  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 && mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
  29. displayBoard();
  30. }
  31. if (useChat) {
  32. displayChat();
  33. }
  34. ((Player) sender).removeMetadata(mcMMO.databaseCommandKey, mcMMO.p);
  35. }
  36. private void displayChat() {
  37. // Player player = mcMMO.p.getServer().getPlayerExact(playerName);
  38. Integer rank;
  39. sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Heading"));
  40. sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Player", playerName));
  41. for (PrimarySkillType skill : SkillTools.NON_CHILD_SKILLS) {
  42. // if (!mcMMO.p.getSkillTools().doesPlayerHaveSkillPermission(player, skill)) {
  43. // continue;
  44. // }
  45. rank = skills.get(skill);
  46. sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", mcMMO.p.getSkillTools().getLocalizedSkillName(skill), (rank == null ? LocaleLoader.getString("Commands.mcrank.Unranked") : rank)));
  47. }
  48. rank = skills.get(null);
  49. sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Overall", (rank == null ? LocaleLoader.getString("Commands.mcrank.Unranked") : rank)));
  50. }
  51. public void displayBoard() {
  52. if (sender.getName().equalsIgnoreCase(playerName)) {
  53. ScoreboardManager.showPlayerRankScoreboard((Player) sender, skills);
  54. }
  55. else {
  56. ScoreboardManager.showPlayerRankScoreboardOthers((Player) sender, playerName, skills);
  57. }
  58. }
  59. }