Package org.bukkit

# Interface Chunk

All Superinterfaces:
  `PersistentDataHolder`

public interface Chunk extends PersistentDataHolder
Represents a chunk of blocks

## Method Summary

Modifier and Type
Method
Description
`boolean`
`addPluginChunkTicket(@NotNull Plugin plugin)`
Adds a plugin ticket for this chunk, loading this chunk if it is not already loaded.
`boolean`
`contains(@NotNull BlockData block)`
Tests if this chunk contains the specified block.
`@NotNull Block`
`getBlock(int x, int y, int z)`
Gets a block from this chunk
`default long`
`getChunkKey()`
`static long`
`getChunkKey(int x, int z)`
`static long`
`getChunkKey(@NotNull Location loc)`
`@NotNull ChunkSnapshot`
`getChunkSnapshot()`
Capture thread-safe read-only snapshot of chunk data
`@NotNull ChunkSnapshot`
`getChunkSnapshot(boolean includeMaxblocky, boolean includeBiome, boolean includeBiomeTempRain)`
Capture thread-safe read-only snapshot of chunk data
`@NotNull Entity[]`
`getEntities()`
Get a list of all entities in the chunk.
`long`
`getInhabitedTime()`
Gets the amount of time in ticks that this chunk has been inhabited.
`@NotNull Collection<Plugin>`
`getPluginChunkTickets()`
Retrieves a collection specifying which plugins have tickets for this chunk.
`default @NotNull BlockState[]`
`getTileEntities()`
Get a list of all tile entities in the chunk.
`@NotNull BlockState[]`
`getTileEntities(boolean useSnapshot)`
Get a list of all tile entities in the chunk.
`@NotNull Collection<BlockState>`
`getTileEntities(@NotNull Predicate<Block> blockPredicate, boolean useSnapshot)`
Get a list of all tile entities that match a given predicate in the chunk.
`@NotNull World`
`getWorld()`
Gets the world containing this chunk
`int`
`getX()`
Gets the X-coordinate of this chunk
`int`
`getZ()`
Gets the Z-coordinate of this chunk
`boolean`
`isEntitiesLoaded()`
Checks if entities in this chunk are loaded.
`boolean`
`isForceLoaded()`
Gets whether the chunk at the specified chunk coordinates is force loaded.
`boolean`
`isLoaded()`
Checks if the chunk is loaded.
`boolean`
`isSlimeChunk()`
Checks if this chunk can spawn slimes without being a swamp biome.
`boolean`
`load()`
Loads the chunk.
`boolean`
`load(boolean generate)`
Loads the chunk.
`boolean`
`removePluginChunkTicket(@NotNull Plugin plugin)`
Removes the specified plugin's ticket for this chunk
`void`
`setForceLoaded(boolean forced)`
Sets whether the chunk at the specified chunk coordinates is force loaded.
`void`
`setInhabitedTime(long ticks)`
Sets the amount of time in ticks that this chunk has been inhabited.
`boolean`
`unload()`
Unloads and optionally saves the Chunk
`boolean`
`unload(boolean save)`
Unloads and optionally saves the Chunk

### Methods inherited from interface org.bukkit.persistence.PersistentDataHolder

`getPersistentDataContainer`

## Method Details

### getX

int getX()
Gets the X-coordinate of this chunk

Returns:
  X-coordinate

### getZ

int getZ()
Gets the Z-coordinate of this chunk

Returns:
  Z-coordinate

### getChunkKey

default long getChunkKey()

Returns:
  The Chunks X and Z coordinates packed into a long

### getChunkKey

static long getChunkKey(@NotNull @NotNull Location loc)

Parameters:
  `loc` - Location to get chunk key
Returns:
  Location's chunk coordinates packed into a long

### getChunkKey

static long getChunkKey(int x, int z)

Parameters:
  `x` - X Coordinate
  `z` - Z Coordinate
Returns:
  Chunk coordinates packed into a long

### getWorld

@NotNull @NotNull World getWorld()
Gets the world containing this chunk

Returns:
  Parent World

### getBlock

@NotNull @NotNull Block getBlock(int x, int y, int z)
Gets a block from this chunk

Parameters:
  `x` - 0-15
  `y` - world minHeight (inclusive) - world maxHeight (exclusive)
  `z` - 0-15
Returns:
  the Block

### getChunkSnapshot

@NotNull @NotNull ChunkSnapshot getChunkSnapshot()
Capture thread-safe read-only snapshot of chunk data

Returns:
  ChunkSnapshot

### getChunkSnapshot

@NotNull @NotNull ChunkSnapshot getChunkSnapshot(boolean includeMaxblocky, boolean includeBiome, boolean includeBiomeTempRain)
Capture thread-safe read-only snapshot of chunk data

Parameters:
  `includeMaxblocky` - - if true, snapshot includes per-coordinate maximum Y values
  `includeBiome` - - if true, snapshot includes per-coordinate biome type
  `includeBiomeTempRain` - - if true, snapshot includes per-coordinate raw biome temperature and rainfall
Returns:
  ChunkSnapshot

### isEntitiesLoaded

boolean isEntitiesLoaded()
Checks if entities in this chunk are loaded.

Returns:
  True if entities are loaded.

### getEntities

@NotNull @NotNull Entity[] getEntities()
Get a list of all entities in the chunk. This will force load any entities, which are not loaded.

Returns:
  The entities.

### getTileEntities

@NotNull default @NotNull BlockState[] getTileEntities()
Get a list of all tile entities in the chunk.

Returns:
  The tile entities.

### getTileEntities

@NotNull @NotNull BlockState[] getTileEntities(boolean useSnapshot)
Get a list of all tile entities in the chunk.

Parameters:
  `useSnapshot` - Take snapshots or direct references
Returns:
  The tile entities.

### getTileEntities

@NotNull @NotNull Collection<BlockState> getTileEntities(@NotNull @NotNull Predicate<Block> blockPredicate, boolean useSnapshot)
Get a list of all tile entities that match a given predicate in the chunk.

Parameters:
  `blockPredicate` - The predicate of blocks to return tile entities for
  `useSnapshot` - Take snapshots or direct references
Returns:
  The tile entities.

### isLoaded

boolean isLoaded()
Checks if the chunk is loaded.

Returns:
  True if it is loaded.

### load

boolean load(boolean generate)
Loads the chunk.

Parameters:
  `generate` - Whether or not to generate a chunk if it doesn't already exist
Returns:
  true if the chunk has loaded successfully, otherwise false

### load

boolean load()
Loads the chunk.

Returns:
  true if the chunk has loaded successfully, otherwise false

### unload

boolean unload(boolean save)
Unloads and optionally saves the Chunk

Parameters:
  `save` - Controls whether the chunk is saved
Returns:
  true if the chunk has unloaded successfully, otherwise false

### unload

boolean unload()
Unloads and optionally saves the Chunk

Returns:
  true if the chunk has unloaded successfully, otherwise false

### isSlimeChunk

boolean isSlimeChunk()
Checks if this chunk can spawn slimes without being a swamp biome.

Returns:
  true if slimes are able to spawn in this chunk

### isForceLoaded

boolean isForceLoaded()
Gets whether the chunk at the specified chunk coordinates is force loaded.

A force loaded chunk will not be unloaded due to lack of player activity.

Returns:
  force load status
See Also:
  - `World.isChunkForceLoaded(int, int)`

### setForceLoaded

void setForceLoaded(boolean forced)
Sets whether the chunk at the specified chunk coordinates is force loaded.

A force loaded chunk will not be unloaded due to lack of player activity.

Parameters:
  `forced` - force load status
See Also:
  - `World.setChunkForceLoaded(int, int, boolean)`

### addPluginChunkTicket

boolean addPluginChunkTicket(@NotNull @NotNull Plugin plugin)
Adds a plugin ticket for this chunk, loading this chunk if it is not already loaded.

A plugin ticket will prevent a chunk from unloading until it is explicitly removed. A plugin instance may only have one ticket per chunk, but each chunk can have multiple plugin tickets.

Parameters:
  `plugin` - Plugin which owns the ticket
Returns:
  `true` if a plugin ticket was added, `false` if the ticket already exists for the plugin
Throws:
  `IllegalStateException` - If the specified plugin is not enabled
See Also:
  - `World.addPluginChunkTicket(int, int, Plugin)`

### removePluginChunkTicket

boolean removePluginChunkTicket(@NotNull @NotNull Plugin plugin)
Removes the specified plugin's ticket for this chunk

A plugin ticket will prevent a chunk from unloading until it is explicitly removed. A plugin instance may only have one ticket per chunk, but each chunk can have multiple plugin tickets.

Parameters:
  `plugin` - Plugin which owns the ticket
Returns:
  `true` if the plugin ticket was removed, `false` if there is no plugin ticket for the chunk
See Also:
  - `World.removePluginChunkTicket(int, int, Plugin)`

### getPluginChunkTickets

@NotNull @NotNull Collection<Plugin> getPluginChunkTickets()
Retrieves a collection specifying which plugins have tickets for this chunk. This collection is not updated when plugin tickets are added or removed to this chunk.

A plugin ticket will prevent a chunk from unloading until it is explicitly removed. A plugin instance may only have one ticket per chunk, but each chunk can have multiple plugin tickets.

Returns:
  unmodifiable collection containing which plugins have tickets for this chunk
See Also:
  - `World.getPluginChunkTickets(int, int)`

### getInhabitedTime

long getInhabitedTime()
Gets the amount of time in ticks that this chunk has been inhabited. Note that the time is incremented once per tick per player within mob spawning distance of this chunk.

Returns:
  inhabited time

### setInhabitedTime

void setInhabitedTime(long ticks)
Sets the amount of time in ticks that this chunk has been inhabited.

Parameters:
  `ticks` - new inhabited time

### contains

boolean contains(@NotNull @NotNull BlockData block)
Tests if this chunk contains the specified block.

Parameters:
  `block` - block to test
Returns:
  if the block is contained within