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