001package net.minecraft.command;
002
003import net.minecraft.server.MinecraftServer;
004import net.minecraft.util.IProgressUpdate;
005import net.minecraft.world.MinecraftException;
006import net.minecraft.world.WorldServer;
007
008public class CommandServerSaveAll extends CommandBase
009{
010    public String getCommandName()
011    {
012        return "save-all";
013    }
014
015    /**
016     * Return the required permission level for this command.
017     */
018    public int getRequiredPermissionLevel()
019    {
020        return 4;
021    }
022
023    public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
024    {
025        MinecraftServer minecraftserver = MinecraftServer.getServer();
026        par1ICommandSender.sendChatToPlayer(par1ICommandSender.translateString("commands.save.start", new Object[0]));
027
028        if (minecraftserver.getConfigurationManager() != null)
029        {
030            minecraftserver.getConfigurationManager().saveAllPlayerData();
031        }
032
033        try
034        {
035            for (int i = 0; i < minecraftserver.worldServers.length; ++i)
036            {
037                if (minecraftserver.worldServers[i] != null)
038                {
039                    WorldServer worldserver = minecraftserver.worldServers[i];
040                    boolean flag = worldserver.canNotSave;
041                    worldserver.canNotSave = false;
042                    worldserver.saveAllChunks(true, (IProgressUpdate)null);
043                    worldserver.canNotSave = flag;
044                }
045            }
046        }
047        catch (MinecraftException minecraftexception)
048        {
049            notifyAdmins(par1ICommandSender, "commands.save.failed", new Object[] {minecraftexception.getMessage()});
050            return;
051        }
052
053        notifyAdmins(par1ICommandSender, "commands.save.success", new Object[0]);
054    }
055}