Package org.bukkit.block

# Interface TileState

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

All Known Subinterfaces:
  `Banner`, `Barrel`, `Beacon`, `Bed`, `Beehive`, `Bell`, `BlastFurnace`, `BrewingStand`, `Campfire`, `Chest`, `ChiseledBookshelf`, `CommandBlock`, `Comparator`, `Conduit`, `Container`, `CreatureSpawner`, `DaylightDetector`, `Dispenser`, `Dropper`, `EnchantingTable`, `EnderChest`, `EndGateway`, `EntityBlockStorage<T>`, `Furnace`, `HangingSign`, `Hopper`, `Jigsaw`, `Jukebox`, `Lectern`, `MovingPiston`, `SculkCatalyst`, `SculkSensor`, `SculkShrieker`, `ShulkerBox`, `Sign`, `Skull`, `Smoker`, `Structure`

public interface TileState extends BlockState, PersistentDataHolder
Represents a block state that also hosts a tile entity at the given location. This interface alone is merely a marker that does not provide any data. Data about the tile entities is provided by the respective interface for each tile entity type. After modifying the data provided by a TileState, `BlockState.update()` needs to be called to store the data.

## Method Summary

Modifier and Type
Method
Description
`@NotNull PersistentDataContainer`
`getPersistentDataContainer()`
Returns a custom tag container capable of storing tags on the object.
`boolean`
`isSnapshot()`
Checks if this TileState is a snapshot or a live representation of the underlying tile entity.

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

`getBlock, getBlockData, getChunk, getData, getDrops, getDrops, getDrops, 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`

## Method Details

### getPersistentDataContainer

@NotNull @NotNull PersistentDataContainer getPersistentDataContainer()
Returns a custom tag container capable of storing tags on the object. Note that the tags stored on this container are all stored under their own custom namespace therefore modifying default tags using this `PersistentDataHolder` is impossible.

This `PersistentDataHolder` is only linked to the snapshot instance stored by the `BlockState`. When storing changes on the `PersistentDataHolder`, the updated content will only be applied to the actual tile entity after one of the `BlockState.update()` methods is called.

Specified by:
  `getPersistentDataContainer` in interface `PersistentDataHolder`
Returns:
  the custom tag container

### isSnapshot

boolean isSnapshot()
Checks if this TileState is a snapshot or a live representation of the underlying tile entity.

NOTE: You may still have to call `BlockState.update()` on live representations to update any visuals on the block.

Returns:
  true if this is a snapshot
See Also:
  - `Block.getState(boolean)`