Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.lessname.minersinfractions.command;
- import me.lessname.minersinfractions.error.Result;
- import me.lessname.minersinfractions.error.ResultHandler;
- import me.lessname.minersinfractions.punishment.Muter;
- import me.lessname.minersinfractions.utils.CommandUtils;
- import me.lessname.minersinfractions.utils.PlayerUtils;
- import me.lessname.minersinfractions.utils.TimeUtils;
- import org.bukkit.Bukkit;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.util.StringUtil;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Set;
- public class TempMuteCommand implements Command{
- private String commandName = "tempmute";
- private String usage = "/mi tempmute <player> <time> <timeuid> <server> <reason>";
- private String description = "Temporarily mute a player.";
- private List<String> aliases = new ArrayList<String>();
- public TempMuteCommand()
- {
- aliases.add("mute");
- }
- @Override
- public void execute(CommandSender sender, List<String> args)
- {
- if ( !CommandUtils.validateCommand(this, sender, "mi.mute.tempmute", args, 6) )
- return;
- String name = args.get(1);
- String time = args.get(2);
- String timeunit = args.get(3);
- String server = args.get(4);
- //Make "reason" from arguments. Ignore argument 0,1 and 2.
- String reason = CommandUtils.getStringFromList(args, 5);
- //Get the player (mutee):
- OfflinePlayer muteee = PlayerUtils.getOfflinePlayer(name);
- if (muteee == null)
- {
- //Player could not be found.
- ResultHandler.sendResult(sender, Result.PLAYER_NOT_FOUND, name);
- return;
- }
- //get the time in the future (when mute should expire. Using Utils.getDate() further details explained there.)
- long expiration;
- try {
- expiration = TimeUtils.getDate(time, timeunit);
- } catch(IllegalArgumentException e)
- {
- ResultHandler.sendResult(sender, Result.COULD_NOT_PARSE_TIME, time + " " + timeunit);
- return;
- }
- Player muter = null;
- boolean consoleMute = !(sender instanceof Player);
- if (!consoleMute) {
- muter = (Player)sender;
- }
- try {
- Muter.tempMute(server, muteee, muter, consoleMute, false, expiration, reason);
- ResultHandler.sendResult(sender, Result.PLAYER_TEMPMUTED, muteee.getName(), TimeUtils.prettyTimeUntil(time, timeunit), server, reason);
- } catch (SQLException e) {
- ResultHandler.sendResult(sender, Result.ERROR_OCCURRED);
- e.printStackTrace();
- }
- }
- @Override
- public String getCommandName() {
- return commandName;
- }
- @Override
- public String getUsage() {
- return usage;
- }
- @Override
- public String getDescription() {
- return description;
- }
- @Override
- public List<String> getAliases() {
- return aliases;
- }
- @Override
- public List<String> onTabComplete(CommandSender sender, org.bukkit.command.Command command, String label,
- String[] args) {
- List<String> completions = new ArrayList<String>();
- if (args.length == 2)
- {
- List<String> playerCompletions = new ArrayList<String>();
- Bukkit.getOnlinePlayers().forEach( (player) -> playerCompletions.add(player.getName()));
- completions = playerCompletions;
- } else if (args.length == 4)
- {
- Set<String> timeunits = TimeUtils.getTimeUnitsPretty().keySet();
- StringUtil.copyPartialMatches(args[3], timeunits, completions);
- }
- return completions;
- }
- @Override
- public List<Command> getSubcommands() {
- // TODO Auto-generated method stub
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement