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    }