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 }