001package net.minecraft.command;
002
003import java.util.List;
004import net.minecraft.entity.player.EntityPlayerMP;
005import net.minecraft.server.MinecraftServer;
006
007public class CommandClearInventory extends CommandBase
008{
009    public String getCommandName()
010    {
011        return "clear";
012    }
013
014    public String getCommandUsage(ICommandSender par1ICommandSender)
015    {
016        return par1ICommandSender.translateString("commands.clear.usage", new Object[0]);
017    }
018
019    /**
020     * Return the required permission level for this command.
021     */
022    public int getRequiredPermissionLevel()
023    {
024        return 2;
025    }
026
027    public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr)
028    {
029        EntityPlayerMP var3 = par2ArrayOfStr.length == 0 ? getCommandSenderAsPlayer(par1ICommandSender) : func_82359_c(par1ICommandSender, par2ArrayOfStr[0]);
030        int var4 = par2ArrayOfStr.length >= 2 ? parseIntWithMin(par1ICommandSender, par2ArrayOfStr[1], 1) : -1;
031        int var5 = par2ArrayOfStr.length >= 3 ? parseIntWithMin(par1ICommandSender, par2ArrayOfStr[2], 0) : -1;
032        int var6 = var3.inventory.clearInventory(var4, var5);
033        var3.inventoryContainer.detectAndSendChanges();
034        notifyAdmins(par1ICommandSender, "commands.clear.success", new Object[] {var3.getEntityName(), Integer.valueOf(var6)});
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        return par2ArrayOfStr.length == 1 ? getListOfStringsMatchingLastWord(par2ArrayOfStr, this.getAllOnlineUsernames()) : null;
043    }
044
045    /**
046     * Return all usernames currently connected to the server.
047     */
048    protected String[] getAllOnlineUsernames()
049    {
050        return MinecraftServer.getServer().getAllUsernames();
051    }
052
053    /**
054     * Return whether the specified command parameter index is a username parameter.
055     */
056    public boolean isUsernameIndex(int par1)
057    {
058        return par1 == 0;
059    }
060}