001 package org.bukkit.command.defaults;
002
003 import java.util.List;
004
005 import org.apache.commons.lang.Validate;
006 import org.bukkit.Bukkit;
007 import org.bukkit.World;
008 import org.bukkit.command.Command;
009 import org.bukkit.command.CommandSender;
010
011 import com.google.common.collect.ImmutableList;
012
013 public class SaveCommand extends VanillaCommand {
014 public SaveCommand() {
015 super("save-all");
016 this.description = "Saves the server to disk";
017 this.usageMessage = "/save-all";
018 this.setPermission("bukkit.command.save.perform");
019 }
020
021 @Override
022 public boolean execute(CommandSender sender, String currentAlias, String[] args) {
023 if (!testPermission(sender)) return true;
024
025 Command.broadcastCommandMessage(sender, "Forcing save..");
026
027 Bukkit.savePlayers();
028
029 for (World world : Bukkit.getWorlds()) {
030 world.save();
031 }
032
033 Command.broadcastCommandMessage(sender, "Save complete.");
034
035 return true;
036 }
037
038 @Override
039 public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
040 Validate.notNull(sender, "Sender cannot be null");
041 Validate.notNull(args, "Arguments cannot be null");
042 Validate.notNull(alias, "Alias cannot be null");
043
044 return ImmutableList.of();
045 }
046 }