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