001 package net.minecraft.command;
002
003 import java.util.List;
004 import net.minecraft.server.MinecraftServer;
005 import net.minecraft.world.WorldServer;
006
007 public class CommandTime extends CommandBase
008 {
009 public String getCommandName()
010 {
011 return "time";
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 String getCommandUsage(ICommandSender par1ICommandSender)
023 {
024 return par1ICommandSender.translateString("commands.time.usage", new Object[0]);
025 }
026
027 public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
028 {
029 if (par2ArrayOfStr.length > 1)
030 {
031 int var3;
032
033 if (par2ArrayOfStr[0].equals("set"))
034 {
035 if (par2ArrayOfStr[1].equals("day"))
036 {
037 var3 = 0;
038 }
039 else if (par2ArrayOfStr[1].equals("night"))
040 {
041 var3 = 12500;
042 }
043 else
044 {
045 var3 = parseIntWithMin(par1ICommandSender, par2ArrayOfStr[1], 0);
046 }
047
048 this.setTime(par1ICommandSender, var3);
049 notifyAdmins(par1ICommandSender, "commands.time.set", new Object[] {Integer.valueOf(var3)});
050 return;
051 }
052
053 if (par2ArrayOfStr[0].equals("add"))
054 {
055 var3 = parseIntWithMin(par1ICommandSender, par2ArrayOfStr[1], 0);
056 this.addTime(par1ICommandSender, var3);
057 notifyAdmins(par1ICommandSender, "commands.time.added", new Object[] {Integer.valueOf(var3)});
058 return;
059 }
060 }
061
062 throw new WrongUsageException("commands.time.usage", new Object[0]);
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[] {"set", "add"}): (par2ArrayOfStr.length == 2 && par2ArrayOfStr[0].equals("set") ? getListOfStringsMatchingLastWord(par2ArrayOfStr, new String[] {"day", "night"}): null);
071 }
072
073 /**
074 * Set the time in the server object.
075 */
076 protected void setTime(ICommandSender par1ICommandSender, int par2)
077 {
078 for (int var3 = 0; var3 < MinecraftServer.getServer().worldServers.length; ++var3)
079 {
080 MinecraftServer.getServer().worldServers[var3].setWorldTime((long)par2);
081 }
082 }
083
084 /**
085 * Adds (or removes) time in the server object.
086 */
087 protected void addTime(ICommandSender par1ICommandSender, int par2)
088 {
089 for (int var3 = 0; var3 < MinecraftServer.getServer().worldServers.length; ++var3)
090 {
091 WorldServer var4 = MinecraftServer.getServer().worldServers[var3];
092 var4.setWorldTime(var4.getWorldTime() + (long)par2);
093 }
094 }
095 }