Advertisement
Guest User

Untitled

a guest
May 21st, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. package me.lessname.minersinfractions.command;
  2.  
  3. import me.lessname.minersinfractions.error.Result;
  4. import me.lessname.minersinfractions.error.ResultHandler;
  5. import me.lessname.minersinfractions.punishment.Muter;
  6. import me.lessname.minersinfractions.utils.CommandUtils;
  7. import me.lessname.minersinfractions.utils.PlayerUtils;
  8. import me.lessname.minersinfractions.utils.TimeUtils;
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.OfflinePlayer;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.util.StringUtil;
  14.  
  15. import java.sql.SQLException;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. import java.util.Set;
  19.  
  20. public class TempMuteCommand implements Command{
  21.  
  22. private String commandName = "tempmute";
  23. private String usage = "/mi tempmute <player> <time> <timeuid> <server> <reason>";
  24. private String description = "Temporarily mute a player.";
  25. private List<String> aliases = new ArrayList<String>();
  26.  
  27. public TempMuteCommand()
  28. {
  29. aliases.add("mute");
  30. }
  31. @Override
  32. public void execute(CommandSender sender, List<String> args)
  33. {
  34. if ( !CommandUtils.validateCommand(this, sender, "mi.mute.tempmute", args, 6) )
  35. return;
  36.  
  37. String name = args.get(1);
  38. String time = args.get(2);
  39. String timeunit = args.get(3);
  40. String server = args.get(4);
  41.  
  42. //Make "reason" from arguments. Ignore argument 0,1 and 2.
  43. String reason = CommandUtils.getStringFromList(args, 5);
  44.  
  45.  
  46. //Get the player (mutee):
  47. OfflinePlayer muteee = PlayerUtils.getOfflinePlayer(name);
  48.  
  49. if (muteee == null)
  50. {
  51. //Player could not be found.
  52. ResultHandler.sendResult(sender, Result.PLAYER_NOT_FOUND, name);
  53. return;
  54. }
  55.  
  56. //get the time in the future (when mute should expire. Using Utils.getDate() further details explained there.)
  57. long expiration;
  58. try {
  59. expiration = TimeUtils.getDate(time, timeunit);
  60. } catch(IllegalArgumentException e)
  61. {
  62. ResultHandler.sendResult(sender, Result.COULD_NOT_PARSE_TIME, time + " " + timeunit);
  63. return;
  64. }
  65.  
  66.  
  67.  
  68. Player muter = null;
  69. boolean consoleMute = !(sender instanceof Player);
  70. if (!consoleMute) {
  71. muter = (Player)sender;
  72. }
  73.  
  74. try {
  75. Muter.tempMute(server, muteee, muter, consoleMute, false, expiration, reason);
  76. ResultHandler.sendResult(sender, Result.PLAYER_TEMPMUTED, muteee.getName(), TimeUtils.prettyTimeUntil(time, timeunit), server, reason);
  77. } catch (SQLException e) {
  78. ResultHandler.sendResult(sender, Result.ERROR_OCCURRED);
  79. e.printStackTrace();
  80. }
  81.  
  82. }
  83.  
  84. @Override
  85. public String getCommandName() {
  86. return commandName;
  87. }
  88.  
  89. @Override
  90. public String getUsage() {
  91. return usage;
  92. }
  93.  
  94. @Override
  95. public String getDescription() {
  96. return description;
  97. }
  98.  
  99. @Override
  100. public List<String> getAliases() {
  101. return aliases;
  102. }
  103.  
  104. @Override
  105. public List<String> onTabComplete(CommandSender sender, org.bukkit.command.Command command, String label,
  106. String[] args) {
  107.  
  108.  
  109. List<String> completions = new ArrayList<String>();
  110. if (args.length == 2)
  111. {
  112. List<String> playerCompletions = new ArrayList<String>();
  113. Bukkit.getOnlinePlayers().forEach( (player) -> playerCompletions.add(player.getName()));
  114. completions = playerCompletions;
  115. } else if (args.length == 4)
  116. {
  117. Set<String> timeunits = TimeUtils.getTimeUnitsPretty().keySet();
  118. StringUtil.copyPartialMatches(args[3], timeunits, completions);
  119. }
  120.  
  121. return completions;
  122. }
  123.  
  124. @Override
  125. public List<Command> getSubcommands() {
  126. // TODO Auto-generated method stub
  127. return null;
  128. }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement