Package com.plotsquared.core.queue
Class QueueCoordinator
java.lang.Object
com.plotsquared.core.queue.QueueCoordinator
- Direct Known Subclasses:
BasicQueueCoordinator
,DelegateQueueCoordinator
-
Constructor Summary
ConstructorDescriptionQueueCoordinator(@Nullable com.sk89q.worldedit.world.World world)
Default constructor requires world to indicate any extents given toQueueCoordinator
also need this constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addEntities(@NonNull List<? extends com.sk89q.worldedit.entity.Entity> entities)
Add entities to be createdabstract void
addProgressSubscriber(@NonNull ProgressSubscriber progressSubscriber)
Add aProgressSubscriber
to the Queue to subscribe to the relevant Chunk Processorabstract void
addReadChunk(@NonNull com.sk89q.worldedit.math.BlockVector2 chunk)
Add aBlockVector2
Chunk coordinate to the Read Chunks listabstract void
addReadChunks(@NonNull Set<com.sk89q.worldedit.math.BlockVector2> readChunks)
Add a set ofBlockVector2
Chunk coordinates to the Read Chunks listabstract void
cancel()
Cancel the queueboolean
enqueue()
Enqueue the queue to start itabstract @Nullable com.sk89q.worldedit.world.block.BlockState
getBlock(int x, int y, int z)
Get a block at the given coordinates.abstract @Nullable Consumer<com.sk89q.worldedit.math.BlockVector2>
Return the chunk consumer set to the queue or null if one is not set@Nullable Object
Get the Chunk Object set to the queueabstract Runnable
Get the task to be run when all chunks have been accessedgetForChunk(int x, int z)
Get aScopedQueueCoordinator
limited to the chunk at the specific chunk Coordinatesabstract @NonNull LightingMode
Get theLightingMode
to be used when setting blocksabstract @NonNull List<com.sk89q.worldedit.math.BlockVector2>
Get the list of chunks that are added manually.abstract @Nullable com.sk89q.worldedit.regions.CuboidRegion
Get theCuboidRegion
designated for direct regenerationabstract @Nullable com.sk89q.worldedit.world.World
getWorld()
Get the world the queue is writing toboolean
Returns true if the queue should be forced to be synchronous when enqueued.abstract boolean
Whether the queue has any biomes to be setabstract boolean
Whether the queue has any tiles being setabstract boolean
Whether chunks should be unloaded after being accessedabstract void
regenChunk(int x, int z)
Set a specific chunk at the chunk coordinates XZ to be regenerated.abstract boolean
setBiome(int x, int y, int z, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)
Set a biome in XYZabstract boolean
setBiome(int x, int z, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)
Deprecated, for removal: This API element is subject to removal in a future version.void
setBiomeCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)
Fill a cuboid between two positions with a BiomeTypeboolean
setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.function.pattern.Pattern pattern)
Sets the block at the coordinates provided to the given id.abstract boolean
setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.world.block.BaseBlock id)
Sets the block at the coordinates provided to the given id.abstract boolean
setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.world.block.BlockState id)
Sets the block at the coordinates provided to the given id.abstract void
setChunkConsumer(@NonNull Consumer<com.sk89q.worldedit.math.BlockVector2> consumer)
Set the Consumer that will be executed on each chunk in queuevoid
setChunkObject(@NonNull Object chunkObject)
Set a chunk object (e.g.abstract void
setCompleteTask(@Nullable Runnable whenDone)
Set the task to be run when all chunks have been accessedvoid
setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.function.pattern.Pattern blocks)
Fill a cuboid between two positions with a Patternvoid
setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.world.block.BlockState block)
Fill a cuboid between two positions with a BlockStateabstract boolean
setEntity(@NonNull com.sk89q.worldedit.entity.Entity entity)
Add an entity to be createdvoid
setForceSync(boolean forceSync)
Set whether the queue should be forced to be synchronousabstract void
setLightingMode(@Nullable LightingMode mode)
Set theLightingMode
to be used when setting blocksvoid
Set the queue as having been modified nowabstract void
setModified(long modified)
Set when the queue was last modifiedabstract void
setRegenRegion(@NonNull com.sk89q.worldedit.regions.CuboidRegion regenRegion)
Set theCuboidRegion
designated for direct regenerationabstract boolean
setTile(int x, int y, int z, @NonNull com.sk89q.jnbt.CompoundTag tag)
Sets a tile entity at the coordinates provided to the given CompoundTagabstract void
setUnloadAfter(boolean unloadAfter)
Set whether chunks should be unloaded after being accessedabstract int
size()
Get the size of the queue in chunksabstract void
start()
Start the queue
-
Constructor Details
-
QueueCoordinator
public QueueCoordinator(@Nullable com.sk89q.worldedit.world.World world)Default constructor requires world to indicate any extents given toQueueCoordinator
also need this constructor.- Parameters:
world
- world as all queues should have this constructor
-
-
Method Details
-
getForChunk
Get aScopedQueueCoordinator
limited to the chunk at the specific chunk Coordinates- Parameters:
x
- chunk x coordinatez
- chunk z coordinate- Returns:
- a new
ScopedQueueCoordinator
-
size
public abstract int size()Get the size of the queue in chunks- Returns:
- size
-
setModified
public abstract void setModified(long modified)Set when the queue was last modified- Parameters:
modified
- long of system millis
-
isForceSync
public boolean isForceSync()Returns true if the queue should be forced to be synchronous when enqueued.- Returns:
- is force sync
-
setForceSync
public void setForceSync(boolean forceSync)Set whether the queue should be forced to be synchronous- Parameters:
forceSync
- force sync or not
-
getChunkObject
Get the Chunk Object set to the queue- Returns:
- chunk object. Usually the implementation-specific chunk (e.g. bukkit Chunk)
-
setChunkObject
Set a chunk object (e.g. the Bukkit Chunk object) to the queue- Parameters:
chunkObject
- chunk object. Usually the implementation-specific chunk (e.g. bukkit Chunk)
-
setBlock
public abstract boolean setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.world.block.BlockState id)Sets the block at the coordinates provided to the given id.- Parameters:
x
- the x coordinate from from 0 to 15 inclusivey
- the y coordinate from from 0 (inclusive) - maxHeight(exclusive)z
- the z coordinate from 0 to 15 inclusiveid
- the BlockState to set the block to- Returns:
- success or not
-
setBlock
public abstract boolean setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.world.block.BaseBlock id)Sets the block at the coordinates provided to the given id.- Parameters:
x
- the x coordinate from from 0 to 15 inclusivey
- the y coordinate from from 0 (inclusive) - maxHeight(exclusive)z
- the z coordinate from 0 to 15 inclusiveid
- the BaseBlock to set the block to- Returns:
- success or not
-
setBlock
public boolean setBlock(int x, int y, int z, @NonNull com.sk89q.worldedit.function.pattern.Pattern pattern)Sets the block at the coordinates provided to the given id.- Parameters:
x
- the x coordinate from from 0 to 15 inclusivey
- the y coordinate from from 0 (inclusive) - maxHeight(exclusive)z
- the z coordinate from 0 to 15 inclusivepattern
- the pattern to set the block to- Returns:
- success or not
-
setTile
public abstract boolean setTile(int x, int y, int z, @NonNull com.sk89q.jnbt.CompoundTag tag)Sets a tile entity at the coordinates provided to the given CompoundTag- Parameters:
x
- the x coordinate from from 0 to 15 inclusivey
- the y coordinate from from 0 (inclusive) - maxHeight(exclusive)z
- the z coordinate from 0 to 15 inclusivetag
- the CompoundTag to set the tile to- Returns:
- success or not
-
isSettingTiles
public abstract boolean isSettingTiles()Whether the queue has any tiles being set- Returns:
- if setting tiles
-
getBlock
public abstract @Nullable com.sk89q.worldedit.world.block.BlockState getBlock(int x, int y, int z)Get a block at the given coordinates.- Parameters:
x
- block xy
- block yz
- block z- Returns:
- WorldEdit BlockState
-
setBiome
@Deprecated(forRemoval=true) public abstract boolean setBiome(int x, int z, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)Deprecated, for removal: This API element is subject to removal in a future version.Biomes now take XYZ, seesetBiome(int, int, int, BiomeType)
Scheduled for removal once we drop the support for versions not supporting 3D biomes.Set a biome in XZ. This will likely set to the whole column- Parameters:
x
- x coordinatez
- z coordinatebiome
- biome- Returns:
- success or not
-
setBiome
public abstract boolean setBiome(int x, int y, int z, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)Set a biome in XYZ- Parameters:
x
- x coordinatey
- y coordinatez
- z coordinatebiome
- biome- Returns:
- success or not
-
isSettingBiomes
public abstract boolean isSettingBiomes()Whether the queue has any biomes to be set- Returns:
- if setting biomes
-
addEntities
Add entities to be created- Parameters:
entities
- list of entities to add to queue
-
setEntity
public abstract boolean setEntity(@NonNull com.sk89q.worldedit.entity.Entity entity)Add an entity to be created- Parameters:
entity
- entity to add to queue- Returns:
- success or not
-
getReadChunks
Get the list of chunks that are added manually. This usually indicated the queue is "read only".- Returns:
- list of BlockVector2 of chunks that are to be "read"
-
addReadChunks
Add a set ofBlockVector2
Chunk coordinates to the Read Chunks list- Parameters:
readChunks
- set of BlockVector2 to add to "read" chunks
-
addReadChunk
public abstract void addReadChunk(@NonNull com.sk89q.worldedit.math.BlockVector2 chunk)Add aBlockVector2
Chunk coordinate to the Read Chunks list- Parameters:
chunk
- BlockVector2 to add to "read" chunks
-
isUnloadAfter
public abstract boolean isUnloadAfter()Whether chunks should be unloaded after being accessed- Returns:
- if is unloading chunks after accessing them
-
setUnloadAfter
public abstract void setUnloadAfter(boolean unloadAfter)Set whether chunks should be unloaded after being accessed- Parameters:
unloadAfter
- if to unload chunks after being accessed
-
getRegenRegion
public abstract @Nullable com.sk89q.worldedit.regions.CuboidRegion getRegenRegion()Get theCuboidRegion
designated for direct regeneration- Returns:
- CuboidRegion to regenerate
-
setRegenRegion
public abstract void setRegenRegion(@NonNull com.sk89q.worldedit.regions.CuboidRegion regenRegion)Set theCuboidRegion
designated for direct regeneration- Parameters:
regenRegion
- CuboidRegion to regenerate
-
regenChunk
public abstract void regenChunk(int x, int z)Set a specific chunk at the chunk coordinates XZ to be regenerated.- Parameters:
x
- chunk xz
- chunk z
-
getWorld
public abstract @Nullable com.sk89q.worldedit.world.World getWorld()Get the world the queue is writing to- Returns:
- world of the queue
-
setModified
public final void setModified()Set the queue as having been modified now -
enqueue
public boolean enqueue()Enqueue the queue to start it- Returns:
- success or not
-
start
public abstract void start()Start the queue -
cancel
public abstract void cancel()Cancel the queue -
getCompleteTask
Get the task to be run when all chunks have been accessed- Returns:
- task to be run when queue is complete
-
setCompleteTask
Set the task to be run when all chunks have been accessed- Parameters:
whenDone
- task to be run when queue is complete
-
getChunkConsumer
Return the chunk consumer set to the queue or null if one is not set- Returns:
- Consumer to be executed on each chunk in queue
-
setChunkConsumer
public abstract void setChunkConsumer(@NonNull Consumer<com.sk89q.worldedit.math.BlockVector2> consumer)Set the Consumer that will be executed on each chunk in queue- Parameters:
consumer
- Consumer to be executed on each chunk in queue
-
addProgressSubscriber
Add aProgressSubscriber
to the Queue to subscribe to the relevant Chunk Processor -
getLightingMode
Get theLightingMode
to be used when setting blocks -
setLightingMode
Set theLightingMode
to be used when setting blocks- Parameters:
mode
- lighting mode. Null to use default.
-
setCuboid
public void setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.world.block.BlockState block)Fill a cuboid between two positions with a BlockState- Parameters:
pos1
- 1st cuboid positionpos2
- 2nd cuboid positionblock
- block to fill
-
setCuboid
public void setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.function.pattern.Pattern blocks)Fill a cuboid between two positions with a Pattern- Parameters:
pos1
- 1st cuboid positionpos2
- 2nd cuboid positionblocks
- pattern to fill
-
setBiomeCuboid
public void setBiomeCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull com.sk89q.worldedit.world.biome.BiomeType biome)Fill a cuboid between two positions with a BiomeType- Parameters:
pos1
- 1st cuboid positionpos2
- 2nd cuboid positionbiome
- biome to fill
-
setBiome(int, int, int, BiomeType)
Scheduled for removal once we drop the support for versions not supporting 3D biomes.