001    package org.bukkit.block;
002    
003    import org.bukkit.inventory.InventoryHolder;
004    
005    /**
006     * Represents a dropper.
007     */
008    public interface Dropper extends BlockState, InventoryHolder {
009        /**
010         * Tries to drop a randomly selected item from the Dropper's inventory,
011         * following the normal behavior of a Dropper.
012         * <p>
013         * Normal behavior of a Dropper is as follows:
014         * <p>
015         * If the block that the Dropper is facing is an InventoryHolder or
016         * ContainerBlock the randomly selected ItemStack is placed within that 
017         * Inventory in the first slot that's available, starting with 0 and
018         * counting up.  If the inventory is full, nothing happens.
019         * <p>
020         * If the block that the Dropper is facing is not an InventoryHolder or
021         * ContainerBlock, the randomly selected ItemStack is dropped on
022         * the ground in the form of an {@link org.bukkit.entity.Item Item}.
023         */
024         public void drop();
025    }