Interface ServerWorld

All Superinterfaces:
ArchetypeVolumeCreator, Audience, BiomeVolume, BiomeVolume.Modifiable<ServerWorld>, BiomeVolume.Streamable<ServerWorld>, BlockEntityVolume, BlockEntityVolume.Modifiable<ServerWorld>, BlockEntityVolume.Streamable<ServerWorld>, BlockVolume, BlockVolume.Modifiable<ServerWorld>, BlockVolume.Streamable<ServerWorld>, ChunkVolume, ContextSource, EntityVolume, EntityVolume.Modifiable<ServerWorld>, EntityVolume.Streamable<ServerWorld>, EnvironmentalVolume, ForwardingAudience, GenerationVolume, GenerationVolume.Mutable, HeightAwareVolume, Identifiable, InteractableVolume, LocationBaseDataHolder, LocationBaseDataHolder.Mutable, LocationCreator<ServerWorld,ServerLocation>, MutableGameVolume, MutableVolume, PhysicsAwareMutableBlockVolume<ServerWorld>, Pointered, PrimitiveGameVolume, RandomProvider, Region<ServerWorld>, RegistryHolder, ServerLocationCreator, UpdatableVolume, Viewer, Volume, WeatherUniverse, WeatherUniverse.Mutable, World<ServerWorld,ServerLocation>, WorldLike<ServerWorld>

  • Method Details Link icon

    • engine Link icon

      Server engine()
      Description copied from interface: WorldLike
      Gets the Engine that simulates this world.
      Specified by:
      engine in interface WorldLike<ServerWorld>
      Returns:
      The engine
    • properties Link icon

      ServerWorldProperties properties()
      Description copied from interface: World
      Gets the properties.
      Specified by:
      properties in interface World<ServerWorld,ServerLocation>
      Returns:
      The properties
    • generator Link icon

      ChunkGenerator generator()
    • key Link icon

      Returns:
      The key
      See Also:
    • uniqueId Link icon

      default UUID uniqueId()
      Description copied from interface: Identifiable
      Gets the unique ID for this object.
      Specified by:
      uniqueId in interface Identifiable
      Returns:
      The unique id
      See Also:
    • chunkAtBlock Link icon

      default WorldChunk chunkAtBlock(Vector3i blockPosition)
      Description copied from interface: World
      Gets the loaded chunk at the given block coordinate position. This gets a guaranteed WorldChunk at the desired block position; however, the WorldChunk instance may be empty, and likewise, may not be generated, valid, pre-existing. It is important to check for these cases prior to attempting to modify the chunk.

      Note that this is still different from World.chunk(Vector3i) due to it being a relative block position which can vary depending on implementation and other mods installed.

      Specified by:
      chunkAtBlock in interface ChunkVolume
      Specified by:
      chunkAtBlock in interface World<ServerWorld,ServerLocation>
      Parameters:
      blockPosition - The block position to be transformed for relative chunk position
      Returns:
      The available chunk at that position
    • chunkAtBlock Link icon

      default WorldChunk chunkAtBlock(int bx, int by, int bz)
      Description copied from interface: World
      Gets the loaded chunk at the given chunk coordinate position. The position is the block position relative to the Chunk.chunkPosition(), and therefor is going to return a different chunk from ChunkVolume.chunk(Vector3i). This is more usable from ServerLocations or a Locatable that returns a position in relation to a WorldLike. This gets a guaranteed WorldChunk at the desired block position; however, the WorldChunk instance may be empty, and likewise, may not be generated, valid, pre-existing. It is important to check for these cases prior to attempting to modify the chunk.

      Note that this is still different from World.chunk(Vector3i) due to the relative block position dictated by Server.chunkLayout(), which can vary depending on implementation and other mods installed.

      Specified by:
      chunkAtBlock in interface ChunkVolume
      Specified by:
      chunkAtBlock in interface World<ServerWorld,ServerLocation>
      Parameters:
      bx - The block x coordinate
      by - The block y coordinate
      bz - The block z coordinate
      Returns:
      The available chunk at that position
    • createSnapshot Link icon

      default BlockSnapshot createSnapshot(Vector3i position)
      Gets a snapshot of this block at the current point in time.

      A snapshot is disconnected from the World that it was taken from so changes to the original block do not affect the snapshot.

      Parameters:
      position - The position of the block
      Returns:
      A snapshot
    • createSnapshot Link icon

      BlockSnapshot createSnapshot(int x, int y, int z)
      Gets a snapshot of this block at the current point in time.

      A snapshot is disconnected from the World that it was taken from so changes to the original block do not affect the snapshot.

      Parameters:
      x - The x position
      y - The y position
      z - The z position
      Returns:
      A snapshot
    • restoreSnapshot Link icon

      boolean restoreSnapshot(BlockSnapshot snapshot, boolean force, BlockChangeFlag flag)
      Restores the given BlockSnapshot using the saved block position stored within the snapshot.

      If forced, the state of the block will change its BlockType to match that of the snapshot then set the state. However, if force is set to false and the BlockTypes does not match, false will be returned. If notifyNeighbors is true, neighboring blocks will be notified of changes at the restored block location triggering physic updates.

      Parameters:
      snapshot - The snapshot
      force - If true, forces block state to be set even if the BlockType does not match the snapshot one.
      flag - The various change flags controlling some interactions
      Returns:
      True if the restore was successful, false otherwise
    • restoreSnapshot Link icon

      default boolean restoreSnapshot(Vector3i position, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag)
      Restores the BlockSnapshot at the given position.

      If forced, the state of the block will change its BlockType to match that of the snapshot then set the state. However, if force is set to false and the block types do not match, false will be returned. If notifyNeighbors is true, neighboring blocks will be notified of changes at the restored block location triggering physics updates.

      Parameters:
      position - The position of the block
      snapshot - The snapshot
      force - If true, forces block state to be set even if the the block type does not match the snapshot one.
      flag - The various change flags controlling some interactions
      Returns:
      True if the restore was successful, false otherwise
    • restoreSnapshot Link icon

      boolean restoreSnapshot(int x, int y, int z, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag)
      Restores the BlockSnapshot at the given position.

      If forced, the state of the block will change its BlockType to match that of the snapshot then set the state. However, if force is set to false and the BlockTypes does not match, false will be returned. If notifyNeighbors is true, neighboring blocks will be notified of changes at the restored block location triggering physic updates.

      Parameters:
      x - The X position
      y - The Y position
      z - The Z position
      snapshot - The snapshot
      force - If true, forces block state to be set even if the BlockType does not match the snapshot one.
      flag - The various change flags controlling some interactions
      Returns:
      true if the restore was successful, false otherwise
    • directory Link icon

      Path directory()
      Gets the Path pointing to the root of where the world's data is being stored.
      Returns:
      The path
    • save Link icon

      boolean save() throws IOException
      Instructs the world to save all data.
      Returns:
      True if save was successful, or false if SerializationBehavior is SerializationBehavior.NONE
      Throws:
      IOException - If the save failed
    • unloadChunk Link icon

      boolean unloadChunk(WorldChunk chunk)
      Unloads the given chunk from the world. Returns a boolean flag for whether the operation was successful.
      Parameters:
      chunk - The chunk to unload
      Returns:
      Whether the operation was successful
    • triggerExplosion Link icon

      void triggerExplosion(Explosion explosion)
      Causes an Explosion in a world.
      Parameters:
      explosion - The explosion to cause
    • players Link icon

      Description copied from interface: World
      Gets an unmodifiable collection of players currently in this world.
      Specified by:
      players in interface EntityVolume
      Specified by:
      players in interface World<ServerWorld,ServerLocation>
      Returns:
      The players
    • raids Link icon

      Collection<Raid> raids()
      Gets all Raids occuring in this ServerWorld.

      Please note by default, some WorldTypes such as WorldTypes.THE_NETHER will not contain any Raids because the game prevents Raids from starting in the nether.

      Returns:
      All the raids in this world.
    • raidAt Link icon

      Optional<Raid> raidAt(Vector3i blockPosition)
      Gets the Raid occurring at a position in the world.
      Parameters:
      blockPosition - The location of the Raid.
      Returns:
      The raid at that location, if present
    • chunkManager Link icon

      ChunkManager chunkManager()
      Gets the ChunkManager for this world.
      Returns:
      The chunk manager.
    • chunkPositions Link icon

      Stream<Vector3i> chunkPositions()
      Returns a stream of existing chunk positions for this world.

      Note that consuming the stream is slow, consider consuming it asynchronously.

      The stream must be closed or fully consumed otherwise file handles may stay open.

      Returns:
      The stream of existing chunk positions.
    • offlineChunks Link icon

      Stream<OfflineChunk> offlineChunks()
      Returns a stream of existing chunks for this world.

      Note that consuming the stream is very slow, consider consuming it asynchronously.

      The stream must be closed or fully consumed otherwise file handles may stay open.

      You should not modify data of currently loaded chunks.

      Returns:
      The stream of existing chunks.