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