Package org.bukkit.block

# Interface Jukebox

All Superinterfaces:
  `BlockState`, `Metadatable`, `PersistentDataHolder`, `TileState`

public interface Jukebox extends TileState
Represents a captured state of a jukebox.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`eject()`
Stops the jukebox playing and ejects the current record.
`@NotNull Material`
`getPlaying()`
Gets the record inserted into the jukebox.
`@NotNull ItemStack`
`getRecord()`
Gets the record item inserted into the jukebox.
`boolean`
`isPlaying()`
Checks if the jukebox is playing a record.
`void`
`setPlaying(@Nullable Material record)`
Sets the record being played.
`void`
`setRecord(@Nullable ItemStack record)`
Sets the record being played.
`void`
`stopPlaying()`
Stops the jukebox playing without ejecting the record.

### 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.metadata.Metadatable

`getMetadata, hasMetadata, removeMetadata, setMetadata`

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

`getPersistentDataContainer, isSnapshot`

## Method Details

### getPlaying

@NotNull @NotNull Material getPlaying()
Gets the record inserted into the jukebox.

Returns:
  The record Material, or AIR if none is inserted

### setPlaying

void setPlaying(@Nullable @Nullable Material record)
Sets the record being played.

Parameters:
  `record` - The record Material, or null/AIR to stop playing

### getRecord

@NotNull @NotNull ItemStack getRecord()
Gets the record item inserted into the jukebox.

Returns:
  a copy of the inserted record, or an air stack if none

### setRecord

void setRecord(@Nullable @Nullable ItemStack record)
Sets the record being played.

Parameters:
  `record` - the record to insert or null/AIR to empty

### isPlaying

boolean isPlaying()
Checks if the jukebox is playing a record.

Returns:
  True if there is a record playing

### stopPlaying

void stopPlaying()
Stops the jukebox playing without ejecting the record.

### eject

boolean eject()
Stops the jukebox playing and ejects the current record.

If the block represented by this state is no longer a jukebox, this will do nothing and return false.

Returns:
  True if a record was ejected; false if there was none playing
Throws:
  `IllegalStateException` - if this block state is not placed