Package org.bukkit.block

# Interface Dropper

All Superinterfaces:
  `BlockInventoryHolder`, `BlockState`, `Container`, `InventoryHolder`, `Lockable`, `Lootable`, `LootableBlockInventory`, `LootableInventory`, `Metadatable`, `Nameable`, `PersistentDataHolder`, `TileState`

public interface Dropper extends Container, LootableBlockInventory
Represents a captured state of a dropper.

## Method Summary

Modifier and Type
Method
Description
`void`
`drop()`
Tries to drop a randomly selected item from the dropper's inventory, following the normal behavior of a dropper.

### Methods inherited from interface org.bukkit.inventory.BlockInventoryHolder

`getBlock`

### Methods inherited from interface org.bukkit.block.BlockState

`getBlock, getBlockData, getChunk, getData, getLightLevel, getLocation, getLocation, getRawData, getType, getWorld, getX, getY, getZ, isCollidable, isPlaced, setBlockData, setData, setRawData, setType, update, update, update`

### Methods inherited from interface org.bukkit.block.Container

`getInventory, getSnapshotInventory`

### Methods inherited from interface org.bukkit.block.Lockable

`getLock, isLocked, setLock`

### Methods inherited from interface org.bukkit.loot.Lootable

`clearLootTable, getLootTable, getSeed, hasLootTable, setLootTable, setLootTable, setSeed`

### Methods inherited from interface com.destroystokyo.paper.loottable.LootableBlockInventory

`getBlock`

### Methods inherited from interface com.destroystokyo.paper.loottable.LootableInventory

`getLastFilled, getLastLooted, getLastLooted, getNextRefill, hasBeenFilled, hasPendingRefill, hasPlayerLooted, hasPlayerLooted, isRefillEnabled, setHasPlayerLooted, setHasPlayerLooted, setNextRefill`

### Methods inherited from interface org.bukkit.metadata.Metadatable

`getMetadata, hasMetadata, removeMetadata, setMetadata`

### Methods inherited from interface org.bukkit.Nameable

`customName, customName, getCustomName, setCustomName`

### Methods inherited from interface org.bukkit.block.TileState

`getPersistentDataContainer, isSnapshot`

## Method Details

### drop

void drop()
Tries to drop a randomly selected item from the dropper's inventory, following the normal behavior of a dropper.

Normal behavior of a dropper is as follows:

If the block that the dropper is facing is an InventoryHolder, the randomly selected ItemStack is placed within that Inventory in the first slot that's available, starting with 0 and counting up. If the inventory is full, nothing happens.

If the block that the dropper is facing is not an InventoryHolder, the randomly selected ItemStack is dropped on the ground in the form of an `Item`.

If the block represented by this state is no longer a dropper, this will do nothing.

Throws:
  `IllegalStateException` - if this block state is not placed