001 package org.bukkit.command.defaults;
002
003 import com.google.common.collect.ImmutableList;
004
005 import org.apache.commons.lang.Validate;
006 import org.bukkit.Bukkit;
007 import org.bukkit.ChatColor;
008 import org.bukkit.command.Command;
009 import org.bukkit.command.CommandSender;
010
011 import java.util.List;
012
013 public class SetIdleTimeoutCommand extends VanillaCommand {
014
015 public SetIdleTimeoutCommand() {
016 super("setidletimeout");
017 this.description = "Sets the server's idle timeout";
018 this.usageMessage = "/setidletimeout <Minutes until kick>";
019 this.setPermission("bukkit.command.setidletimeout");
020 }
021
022 @Override
023 public boolean execute(CommandSender sender, String currentAlias, String[] args) {
024 if (!testPermission(sender)) return true;
025
026 if (args.length == 1) {
027 int minutes;
028
029 try {
030 minutes = getInteger(sender, args[0], 0, Integer.MAX_VALUE, true);
031 } catch (NumberFormatException ex) {
032 sender.sendMessage(ex.getMessage());
033 return true;
034 }
035
036 Bukkit.getServer().setIdleTimeout(minutes);
037
038 Command.broadcastCommandMessage(sender, "Successfully set the idle timeout to " + minutes + " minutes.");
039 return true;
040 }
041 sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
042 return false;
043 }
044
045 @Override
046 public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
047 Validate.notNull(sender, "Sender cannot be null");
048 Validate.notNull(args, "Arguments cannot be null");
049 Validate.notNull(alias, "Alias cannot be null");
050
051 return ImmutableList.of();
052 }
053 }