    001package net.minecraft.command;
    002
    003import java.util.ArrayList;
    004import java.util.List;
    005import net.minecraft.server.MinecraftServer;
    006
    007public 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}