Class QueueCoordinator

java.lang.Object
com.plotsquared.core.queue.QueueCoordinator
Direct Known Subclasses:
BasicQueueCoordinator, DelegateQueueCoordinator

public abstract class QueueCoordinator extends Object
  • Constructor Details

    • QueueCoordinator

      Default constructor requires world to indicate any extents given to QueueCoordinator also need this constructor.
      Parameters:
      world - world as all queues should have this constructor
  • Method Details

    • getForChunk

      @Deprecated(forRemoval=true, since="6.6.0") public ScopedQueueCoordinator getForChunk(int x, int z)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Get a ScopedQueueCoordinator limited to the chunk at the specific chunk Coordinates
      Parameters:
      x - chunk x coordinate
      z - chunk z coordinate
      Returns:
      a new ScopedQueueCoordinator
    • getForChunk

      @Deprecated(forRemoval=true, since="6.9.0") public ScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY)
      Deprecated, for removal: This API element is subject to removal in a future version.
      ScopedQueueCoordinator will be renamed in v7.
      Get a ScopedQueueCoordinator limited to the chunk at the specific chunk Coordinates
      Parameters:
      x - chunk x coordinate
      z - chunk z coordinate
      Returns:
      a new ScopedQueueCoordinator
      Since:
      6.6.0
    • 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. This is not necessarily synchronous to the server, and simply effectively makes enqueue() a blocking operation.
      Returns:
      is force sync
    • setForceSync

      public void setForceSync(boolean forceSync)
      Set whether the queue should be forced to be synchronous. This is not necessarily synchronous to the server, and simply effectively makes enqueue() a blocking operation.
      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

      public void setChunkObject(@NonNull Object chunkObject)
      Set a chunk object (e.g. the Bukkit Chunk object) to the queue. This will be used as fallback in case of WNA failure. Should ONLY be used in specific cases (i.e. generation, where a chunk is being populated)
      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 BlockState id)
      Sets the block at the coordinates provided to the given id.
      Parameters:
      x - the x coordinate from from 0 to 15 inclusive
      y - the y coordinate from from 0 (inclusive) - maxHeight(exclusive)
      z - the z coordinate from 0 to 15 inclusive
      id - the BlockState to set the block to
      Returns:
      success or not
    • setBlock

      public abstract boolean setBlock(int x, int y, int z, @NonNull BaseBlock id)
      Sets the block at the coordinates provided to the given id.
      Parameters:
      x - the x coordinate from from 0 to 15 inclusive
      y - the y coordinate from from 0 (inclusive) - maxHeight(exclusive)
      z - the z coordinate from 0 to 15 inclusive
      id - the BaseBlock to set the block to
      Returns:
      success or not
    • setBlock

      public boolean setBlock(int x, int y, int z, @NonNull Pattern pattern)
      Sets the block at the coordinates provided to the given id.
      Parameters:
      x - the x coordinate from from 0 to 15 inclusive
      y - the y coordinate from from 0 (inclusive) - maxHeight(exclusive)
      z - the z coordinate from 0 to 15 inclusive
      pattern - the pattern to set the block to
      Returns:
      success or not
    • setTile

      public abstract boolean setTile(int x, int y, int z, @NonNull CompoundTag tag)
      Sets a tile entity at the coordinates provided to the given CompoundTag
      Parameters:
      x - the x coordinate from from 0 to 15 inclusive
      y - the y coordinate from from 0 (inclusive) - maxHeight(exclusive)
      z - the z coordinate from 0 to 15 inclusive
      tag - 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 BlockState getBlock(int x, int y, int z)
      Get a block at the given coordinates.
      Parameters:
      x - block x
      y - block y
      z - block z
      Returns:
      WorldEdit BlockState
    • setBiome

      @Deprecated(forRemoval=true, since="6.0.0") public abstract boolean setBiome(int x, int z, @NonNull BiomeType biome)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Biomes now take XYZ, see setBiome(int, int, int, BiomeType)
      Scheduled for removal once we drop the support for versions not supporting 3D biomes, 1.18 and earlier.
      Set a biome in XZ. This will likely set to the whole column
      Parameters:
      x - x coordinate
      z - z coordinate
      biome - biome
      Returns:
      success or not
    • setBiome

      public abstract boolean setBiome(int x, int y, int z, @NonNull BiomeType biome)
      Set a biome in XYZ
      Parameters:
      x - x coordinate
      y - y coordinate
      z - z coordinate
      biome - biome
      Returns:
      success or not
    • isSettingBiomes

      public abstract boolean isSettingBiomes()
      Whether the queue has any biomes to be set
      Returns:
      if setting biomes
    • setBiomesEnabled

      public abstract void setBiomesEnabled(boolean enabled)
      If the queue should accept biome placement
      Parameters:
      enabled - If biomes should be enabled
      Since:
      6.8.0
    • addEntities

      public void addEntities(@NonNull List<? extends Entity> entities)
      Add entities to be created
      Parameters:
      entities - list of entities to add to queue
    • setEntity

      public abstract boolean setEntity(@NonNull 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

      public abstract void addReadChunks(@NonNull Set<BlockVector2> readChunks)
      Add a set of BlockVector2 Chunk coordinates to the Read Chunks list
      Parameters:
      readChunks - set of BlockVector2 to add to "read" chunks
    • addReadChunk

      public abstract void addReadChunk(@NonNull BlockVector2 chunk)
      Add a BlockVector2 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

      Get the CuboidRegion designated for direct regeneration
      Returns:
      CuboidRegion to regenerate
    • setRegenRegion

      public abstract void setRegenRegion(@NonNull CuboidRegion regenRegion)
      Set the CuboidRegion 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 x
      z - chunk z
    • getWorld

      public abstract @Nullable 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
      Since:
      6.0.10
    • start

      public abstract void start()
      Start the queue
    • cancel

      public abstract void cancel()
      Cancel the queue
    • getCompleteTask

      public abstract Runnable getCompleteTask()
      Get the task to be run when all chunks have been accessed
      Returns:
      task to be run when queue is complete
    • setCompleteTask

      public abstract void setCompleteTask(@Nullable Runnable whenDone)
      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<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

      public abstract void addProgressSubscriber(@NonNull ProgressSubscriber progressSubscriber)
      Add a ProgressSubscriber to the Queue to subscribe to the relevant Chunk Processor
    • getLightingMode

      Get the LightingMode to be used when setting blocks
    • setLightingMode

      public abstract void setLightingMode(@Nullable LightingMode mode)
      Set the LightingMode to be used when setting blocks
      Parameters:
      mode - lighting mode. Null to use default.
    • getSideEffectSet

      Get the overriding SideEffectSet to be used by the queue if it exists, else null
      Returns:
      Overriding SideEffectSet or null
    • setSideEffectSet

      public abstract void setSideEffectSet(@Nullable SideEffectSet sideEffectSet)
      Set the overriding SideEffectSet to be used by the queue. Null to use default side effects.
      Parameters:
      sideEffectSet - side effects to override with, or null to use default
    • setCuboid

      public void setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull BlockState block)
      Fill a cuboid between two positions with a BlockState
      Parameters:
      pos1 - 1st cuboid position
      pos2 - 2nd cuboid position
      block - block to fill
    • setCuboid

      public void setCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull Pattern blocks)
      Fill a cuboid between two positions with a Pattern
      Parameters:
      pos1 - 1st cuboid position
      pos2 - 2nd cuboid position
      blocks - pattern to fill
    • setBiomeCuboid

      public void setBiomeCuboid(@NonNull Location pos1, @NonNull Location pos2, @NonNull BiomeType biome)
      Fill a cuboid between two positions with a BiomeType
      Parameters:
      pos1 - 1st cuboid position
      pos2 - 2nd cuboid position
      biome - biome to fill
    • getMinY

      protected int getMinY()
      Get the min Y limit associated with the queue
    • getMaxY

      protected int getMaxY()
      Get the max Y limit associated with the queue
    • getMinLayer

      protected int getMinLayer()
      Get the min chunk layer associated with the queue. Usually 0 or -4;
    • getMaxLayer

      protected int getMaxLayer()
      Get the max chunk layer associated with the queue. Usually 15 or 19