McRankCommandAsyncTask.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package com.gmail.nossr50.runnables.commands;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.mcMMO;
  4. import com.gmail.nossr50.util.CancellableRunnable;
  5. import org.apache.commons.lang3.Validate;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import java.util.Map;
  9. public class McRankCommandAsyncTask extends CancellableRunnable {
  10. private final String playerName;
  11. private final CommandSender sender;
  12. private final boolean useBoard, useChat;
  13. public McRankCommandAsyncTask(String playerName, CommandSender sender, boolean useBoard, boolean useChat) {
  14. Validate.isTrue(useBoard || useChat, "Attempted to start a rank retrieval with both board and chat off");
  15. Validate.notNull(sender, "Attempted to start a rank retrieval with no recipient");
  16. if (useBoard) {
  17. Validate.isTrue(sender instanceof Player, "Attempted to start a rank retrieval displaying scoreboard to a non-player");
  18. }
  19. this.playerName = playerName;
  20. this.sender = sender;
  21. this.useBoard = useBoard;
  22. this.useChat = useChat;
  23. }
  24. @Override
  25. public void run() {
  26. Map<PrimarySkillType, Integer> skills = mcMMO.getDatabaseManager().readRank(playerName);
  27. mcMMO.p.getFoliaLib().getScheduler().runNextTick(new McRankCommandDisplayTask(skills, sender, playerName, useBoard, useChat));
  28. }
  29. }