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