001    package net.minecraft.src;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    import net.minecraft.server.MinecraftServer;
006    
007    public class CommandServerOp extends CommandBase
008    {
009        public String getCommandName()
010        {
011            return "op";
012        }
013    
014        public int func_82362_a()
015        {
016            return 3;
017        }
018    
019        public String getCommandUsage(ICommandSender par1ICommandSender)
020        {
021            return par1ICommandSender.translateString("commands.op.usage", new Object[0]);
022        }
023    
024        public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
025        {
026            if (par2ArrayOfStr.length == 1 && par2ArrayOfStr[0].length() > 0)
027            {
028                MinecraftServer.getServer().getConfigurationManager().addOp(par2ArrayOfStr[0]);
029                notifyAdmins(par1ICommandSender, "commands.op.success", new Object[] {par2ArrayOfStr[0]});
030            }
031            else
032            {
033                throw new WrongUsageException("commands.op.usage", new Object[0]);
034            }
035        }
036    
037        /**
038         * Adds the strings available in this command to the given list of tab completion options.
039         */
040        public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
041        {
042            if (par2ArrayOfStr.length == 1)
043            {
044                String var3 = par2ArrayOfStr[par2ArrayOfStr.length - 1];
045                ArrayList var4 = new ArrayList();
046                String[] var5 = MinecraftServer.getServer().getAllUsernames();
047                int var6 = var5.length;
048    
049                for (int var7 = 0; var7 < var6; ++var7)
050                {
051                    String var8 = var5[var7];
052    
053                    if (!MinecraftServer.getServer().getConfigurationManager().areCommandsAllowed(var8) && doesStringStartWith(var3, var8))
054                    {
055                        var4.add(var8);
056                    }
057                }
058    
059                return var4;
060            }
061            else
062            {
063                return null;
064            }
065        }
066    }