    001package net.minecraft.command;
    002
    003import java.util.List;
    004
    005public interface ICommand extends Comparable
    006{
    007    String getCommandName();
    008
    009    String getCommandUsage(ICommandSender icommandsender);
    010
    011    List getCommandAliases();
    012
    013    void processCommand(ICommandSender icommandsender, String[] astring);
    014
    015    /**
    016     * Returns true if the given command sender is allowed to use this command.
    017     */
    018    boolean canCommandSenderUseCommand(ICommandSender icommandsender);
    019
    020    /**
    021     * Adds the strings available in this command to the given list of tab completion options.
    022     */
    023    List addTabCompletionOptions(ICommandSender icommandsender, String[] astring);
    024
    025    /**
    026     * Return whether the specified command parameter index is a username parameter.
    027     */
    028    boolean isUsernameIndex(String[] astring, int i);
    029}