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 }