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.func_71552_a(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        protected void func_71552_a(ICommandSender par1ICommandSender, int par2)
065        {
066            for (int var3 = 0; var3 < MinecraftServer.getServer().theWorldServer.length; ++var3)
067            {
068                MinecraftServer.getServer().theWorldServer[var3].setTime((long)par2);
069            }
070        }
071    
072        /**
073         * Adds (or removes) time in the server object.
074         */
075        protected void addTime(ICommandSender par1ICommandSender, int par2)
076        {
077            for (int var3 = 0; var3 < MinecraftServer.getServer().theWorldServer.length; ++var3)
078            {
079                WorldServer var4 = MinecraftServer.getServer().theWorldServer[var3];
080                var4.setTime(var4.getWorldTime() + (long)par2);
081            }
082        }
083    }