001    package net.minecraft.command;
002    
003    import net.minecraft.server.MinecraftServer;
004    import net.minecraft.util.IProgressUpdate;
005    import net.minecraft.world.MinecraftException;
006    import net.minecraft.world.WorldServer;
007    
008    public 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 var3 = MinecraftServer.getServer();
026            par1ICommandSender.sendChatToPlayer(par1ICommandSender.translateString("commands.save.start", new Object[0]));
027    
028            if (var3.getConfigurationManager() != null)
029            {
030                var3.getConfigurationManager().saveAllPlayerData();
031            }
032    
033            try
034            {
035                for (int var4 = 0; var4 < var3.worldServers.length; ++var4)
036                {
037                    if (var3.worldServers[var4] != null)
038                    {
039                        WorldServer var5 = var3.worldServers[var4];
040                        boolean var6 = var5.canNotSave;
041                        var5.canNotSave = false;
042                        var5.saveAllChunks(true, (IProgressUpdate)null);
043                        var5.canNotSave = var6;
044                    }
045                }
046            }
047            catch (MinecraftException var7)
048            {
049                notifyAdmins(par1ICommandSender, "commands.save.failed", new Object[] {var7.getMessage()});
050                return;
051            }
052    
053            notifyAdmins(par1ICommandSender, "commands.save.success", new Object[0]);
054        }
055    }