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        public int func_82362_a()
015        {
016            return 2;
017        }
018    
019        public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
020        {
021            if (par2ArrayOfStr.length < 1)
022            {
023                throw new WrongUsageException("commands.weather.usage", new Object[0]);
024            }
025            else
026            {
027                int var3 = (300 + (new Random()).nextInt(600)) * 20;
028    
029                if (par2ArrayOfStr.length >= 2)
030                {
031                    var3 = parseIntBounded(par1ICommandSender, par2ArrayOfStr[1], 1, 1000000) * 20;
032                }
033    
034                WorldServer var4 = MinecraftServer.getServer().worldServers[0];
035                WorldInfo var5 = var4.getWorldInfo();
036                var5.setRainTime(var3);
037                var5.setThunderTime(var3);
038    
039                if ("clear".equalsIgnoreCase(par2ArrayOfStr[0]))
040                {
041                    var5.setRaining(false);
042                    var5.setThundering(false);
043                    notifyAdmins(par1ICommandSender, "commands.weather.clear", new Object[0]);
044                }
045                else if ("rain".equalsIgnoreCase(par2ArrayOfStr[0]))
046                {
047                    var5.setRaining(true);
048                    var5.setThundering(false);
049                    notifyAdmins(par1ICommandSender, "commands.weather.rain", new Object[0]);
050                }
051                else if ("thunder".equalsIgnoreCase(par2ArrayOfStr[0]))
052                {
053                    var5.setRaining(true);
054                    var5.setThundering(true);
055                    notifyAdmins(par1ICommandSender, "commands.weather.thunder", new Object[0]);
056                }
057            }
058        }
059    
060        /**
061         * Adds the strings available in this command to the given list of tab completion options.
062         */
063        public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
064        {
065            return par2ArrayOfStr.length == 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"clear", "rain", "thunder"}): null;
066        }
067    }