Package org.bukkit
Interface Chunk
- All Superinterfaces:
PersistentDataHolder
Represents a chunk of blocks
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addPluginChunkTicket
(@NotNull Plugin plugin) Adds a plugin ticket for this chunk, loading this chunk if it is not already loaded.boolean
Tests if this chunk contains the specified block.getBlock
(int x, int y, int z) Gets a block from this chunkdefault long
static long
getChunkKey
(int x, int z) static long
getChunkKey
(@NotNull Location loc) Capture thread-safe read-only snapshot of chunk datagetChunkSnapshot
(boolean includeMaxblocky, boolean includeBiome, boolean includeBiomeTempRain) Capture thread-safe read-only snapshot of chunk dataGet a list of all entities in the chunk.long
Gets the amount of time in ticks that this chunk has been inhabited.Retrieves a collection specifying which plugins have tickets for this chunk.default @NotNull BlockState[]
Get a list of all tile entities in the chunk.getTileEntities
(boolean useSnapshot) Get a list of all tile entities in the chunk.getTileEntities
(@NotNull Predicate<Block> blockPredicate, boolean useSnapshot) Get a list of all tile entities that match a given predicate in the chunk.getWorld()
Gets the world containing this chunkint
getX()
Gets the X-coordinate of this chunkint
getZ()
Gets the Z-coordinate of this chunkboolean
Checks if entities in this chunk are loaded.boolean
Gets whether the chunk at the specified chunk coordinates is force loaded.boolean
isLoaded()
Checks if the chunk is loaded.boolean
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 chunkvoid
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 Chunkboolean
unload
(boolean save) Unloads and optionally saves the ChunkMethods 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
- 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 Coordinatez
- Z Coordinate- Returns:
- Chunk coordinates packed into a long
-
getWorld
Gets the world containing this chunk- Returns:
- Parent World
-
getBlock
Gets a block from this chunk- Parameters:
x
- 0-15y
- world minHeight (inclusive) - world maxHeight (exclusive)z
- 0-15- Returns:
- the Block
-
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 valuesincludeBiome
- - if true, snapshot includes per-coordinate biome typeincludeBiomeTempRain
- - 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
Get a list of all entities in the chunk. This will force load any entities, which are not loaded.- Returns:
- The entities.
-
getTileEntities
Get a list of all tile entities in the chunk.- Returns:
- The tile entities.
-
getTileEntities
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 foruseSnapshot
- 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:
-
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:
-
addPluginChunkTicket
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:
-
removePluginChunkTicket
Removes the specified plugin's ticket for this chunkA 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:
-
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:
-
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 in the 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
Tests if this chunk contains the specified block.- Parameters:
block
- block to test- Returns:
- if the block is contained within
-