Package org.bukkit.block

# Interface Dispenser

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

public interface Dispenser extends Container, Nameable, LootableBlockInventory
Represents a captured state of a dispenser.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`dispense()`
Attempts to dispense the contents of the dispenser.
`@Nullable BlockProjectileSource`
`getBlockProjectileSource()`
Gets the BlockProjectileSource object for the dispenser.

### 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

### getBlockProjectileSource

@Nullable @Nullable BlockProjectileSource getBlockProjectileSource()
Gets the BlockProjectileSource object for the dispenser.

If the block represented by this state is no longer a dispenser, this will return null.

Returns:
  a BlockProjectileSource if valid, otherwise null
Throws:
  `IllegalStateException` - if this block state is not placed

### dispense

boolean dispense()
Attempts to dispense the contents of the dispenser.

If the block represented by this state is no longer a dispenser, this will return false.

Returns:
  true if successful, otherwise false
Throws:
  `IllegalStateException` - if this block state is not placed