001    package net.minecraft.src;
002    
003    import java.util.List;
004    import java.util.Random;
005    import net.minecraft.server.MinecraftServer;
006    
007    public class CommandWeather extends CommandBase
008    {
009        public String getCommandName()
010        {
011            return "weather";
012        }
013    
014        /**
015         * Return the required permission level for this command.
016         */
017        public int getRequiredPermissionLevel()
018        {
019            return 2;
020        }
021    
022        public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
023        {
024            if (par2ArrayOfStr.length < 1)
025            {
026                throw new WrongUsageException("commands.weather.usage", new Object[0]);
027            }
028            else
029            {
030                int var3 = (300 + (new Random()).nextInt(600)) * 20;
031    
032                if (par2ArrayOfStr.length >= 2)
033                {
034                    var3 = parseIntBounded(par1ICommandSender, par2ArrayOfStr[1], 1, 1000000) * 20;
035                }
036    
037                WorldServer var4 = MinecraftServer.getServer().worldServers[0];
038                WorldInfo var5 = var4.getWorldInfo();
039                var5.setRainTime(var3);
040                var5.setThunderTime(var3);
041    
042                if ("clear".equalsIgnoreCase(par2ArrayOfStr[0]))
043                {
044                    var5.setRaining(false);
045                    var5.setThundering(false);
046                    notifyAdmins(par1ICommandSender, "commands.weather.clear", new Object[0]);
047                }
048                else if ("rain".equalsIgnoreCase(par2ArrayOfStr[0]))
049                {
050                    var5.setRaining(true);
051                    var5.setThundering(false);
052                    notifyAdmins(par1ICommandSender, "commands.weather.rain", new Object[0]);
053                }
054                else if ("thunder".equalsIgnoreCase(par2ArrayOfStr[0]))
055                {
056                    var5.setRaining(true);
057                    var5.setThundering(true);
058                    notifyAdmins(par1ICommandSender, "commands.weather.thunder", new Object[0]);
059                }
060            }
061        }
062    
063        /**
064         * Adds the strings available in this command to the given list of tab completion options.
065         */
066        public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
067        {
068            return par2ArrayOfStr.length == 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"clear", "rain", "thunder"}): null;
069        }
070    }