001    package net.minecraft.command;
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        /**
015         * Return the required permission level for this command.
016         */
017        public int getRequiredPermissionLevel()
018        {
019            return 3;
020        }
021    
022        public String getCommandUsage(ICommandSender par1ICommandSender)
023        {
024            return par1ICommandSender.translateString("commands.op.usage", new Object[0]);
025        }
026    
027        public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
028        {
029            if (par2ArrayOfStr.length == 1 && par2ArrayOfStr[0].length() > 0)
030            {
031                MinecraftServer.getServer().getConfigurationManager().addOp(par2ArrayOfStr[0]);
032                notifyAdmins(par1ICommandSender, "commands.op.success", new Object[] {par2ArrayOfStr[0]});
033            }
034            else
035            {
036                throw new WrongUsageException("commands.op.usage", new Object[0]);
037            }
038        }
039    
040        /**
041         * Adds the strings available in this command to the given list of tab completion options.
042         */
043        public List addTabCompletionOptions(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
044        {
045            if (par2ArrayOfStr.length == 1)
046            {
047                String var3 = par2ArrayOfStr[par2ArrayOfStr.length - 1];
048                ArrayList var4 = new ArrayList();
049                String[] var5 = MinecraftServer.getServer().getAllUsernames();
050                int var6 = var5.length;
051    
052                for (int var7 = 0; var7 < var6; ++var7)
053                {
054                    String var8 = var5[var7];
055    
056                    if (!MinecraftServer.getServer().getConfigurationManager().areCommandsAllowed(var8) && doesStringStartWith(var3, var8))
057                    {
058                        var4.add(var8);
059                    }
060                }
061    
062                return var4;
063            }
064            else
065            {
066                return null;
067            }
068        }
069    }