001 package net.minecraft.src;
002
003 import java.util.List;
004 import net.minecraft.server.MinecraftServer;
005
006 public class CommandTime extends CommandBase
007 {
008 public String getCommandName()
009 {
010 return "time";
011 }
012
013 public int func_82362_a()
014 {
015 return 2;
016 }
017
018 public String getCommandUsage(ICommandSender par1ICommandSender)
019 {
020 return par1ICommandSender.translateString("commands.time.usage", new Object[0]);
021 }
022
023 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
024 {
025 if (par2ArrayOfStr.length > 1)
026 {
027 int var3;
028
029 if (par2ArrayOfStr[0].equals("set"))
030 {
031 if (par2ArrayOfStr[1].equals("day"))
032 {
033 var3 = 0;
034 }
035 else if (par2ArrayOfStr[1].equals("night"))
036 {
037 var3 = 12500;
038 }
039 else
040 {
041 var3 = parseIntWithMin(par1ICommandSender, par2ArrayOfStr[1], 0);
042 }
043
044 this.setTime(par1ICommandSender, var3);
045 notifyAdmins(par1ICommandSender, "commands.time.set", new Object[] {Integer.valueOf(var3)});
046 return;
047 }
048
049 if (par2ArrayOfStr[0].equals("add"))
050 {
051 var3 = parseIntWithMin(par1ICommandSender, par2ArrayOfStr[1], 0);
052 this.addTime(par1ICommandSender, var3);
053 notifyAdmins(par1ICommandSender, "commands.time.added", new Object[] {Integer.valueOf(var3)});
054 return;
055 }
056 }
057
058 throw new WrongUsageException("commands.time.usage", new Object[0]);
059 }
060
061 /**
062 * Adds the strings available in this command to the given list of tab completion options.
063 */
064 public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
065 {
066 return par2ArrayOfStr.length == 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"set", "add"}): (par2ArrayOfStr.length == 2 && par2ArrayOfStr[0].equals("set") ? getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"day", "night"}): null);
067 }
068
069 /**
070 * Set the time in the server object.
071 */
072 protected void setTime(ICommandSender par1ICommandSender, int par2)
073 {
074 for (int var3 = 0; var3 < MinecraftServer.getServer().worldServers.length; ++var3)
075 {
076 MinecraftServer.getServer().worldServers[var3].setWorldTime((long)par2);
077 }
078 }
079
080 /**
081 * Adds (or removes) time in the server object.
082 */
083 protected void addTime(ICommandSender par1ICommandSender, int par2)
084 {
085 for (int var3 = 0; var3 < MinecraftServer.getServer().worldServers.length; ++var3)
086 {
087 WorldServer var4 = MinecraftServer.getServer().worldServers[var3];
088 var4.setWorldTime(var4.getWorldTime() + (long)par2);
089 }
090 }
091 }