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
,ForwardingViewer
,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>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.biome.BiomeVolume
BiomeVolume.Immutable, BiomeVolume.Modifiable<M extends BiomeVolume.Modifiable<M>>, BiomeVolume.Mutable, BiomeVolume.Streamable<B extends BiomeVolume.Streamable<B>>, BiomeVolume.Unmodifiable<U extends BiomeVolume.Unmodifiable<U>>
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.block.entity.BlockEntityVolume
BlockEntityVolume.Modifiable<M extends BlockEntityVolume.Modifiable<M>>, BlockEntityVolume.Mutable, BlockEntityVolume.Streamable<T extends BlockEntityVolume.Streamable<T>>, BlockEntityVolume.Unmodifiable<U extends BlockEntityVolume.Unmodifiable<U>>
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.block.BlockVolume
BlockVolume.Immutable, BlockVolume.Modifiable<M extends BlockVolume.Modifiable<M>>, BlockVolume.Mutable, BlockVolume.Streamable<B extends BlockVolume.Streamable<B>>, BlockVolume.Unmodifiable<U extends BlockVolume.Unmodifiable<U>>
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.entity.EntityVolume
EntityVolume.EntityVolumeFactory, EntityVolume.Immutable, EntityVolume.Modifiable<M extends EntityVolume.Modifiable<M>>, EntityVolume.Mutable, EntityVolume.Streamable<E extends EntityVolume.Streamable<E>>, EntityVolume.Unmodifiable<U extends EntityVolume.Unmodifiable<U>>
Nested classes/interfaces inherited from interface net.kyori.adventure.audience.ForwardingAudience
ForwardingAudience.Single
Nested classes/interfaces inherited from interface org.spongepowered.api.effect.ForwardingViewer
ForwardingViewer.Factory
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.game.GenerationVolume
GenerationVolume.Mutable
Nested classes/interfaces inherited from interface org.spongepowered.api.world.volume.game.LocationBaseDataHolder
LocationBaseDataHolder.Mutable
Nested classes/interfaces inherited from interface org.spongepowered.api.util.RandomProvider
RandomProvider.Source
Nested classes/interfaces inherited from interface org.spongepowered.api.world.server.ServerLocationCreator
ServerLocationCreator.Factory
Nested classes/interfaces inherited from interface org.spongepowered.api.world.weather.WeatherUniverse
WeatherUniverse.Mutable
-
Method Summary
Modifier and TypeMethodDescriptiondefault WorldChunk
chunkAtBlock
(int bx, int by, int bz) Gets the loaded chunk at the given chunk coordinate position.default WorldChunk
chunkAtBlock
(Vector3i blockPosition) Gets the loaded chunk at the given block coordinate position.Gets theChunkManager
for this world.Returns a stream of existing chunk positions for this world.createSnapshot
(int x, int y, int z) Gets a snapshot of this block at the current point in time.default BlockSnapshot
createSnapshot
(Vector3i position) Gets a snapshot of this block at the current point in time.Gets thePath
pointing to the root of where the world's data is being stored.Gets theBossBar
of the ender dragon fight occurring in thisServerWorld
.engine()
Gets theEngine
that simulates this world.key()
Returns a stream of existing chunks for this world.players()
Gets an unmodifiable collection ofplayers
currently in this world.Gets theproperties
.Gets theRaid
occurring at a position in the world.raids()
Gets allRaid
s occuring in thisServerWorld
.boolean
restoreSnapshot
(int x, int y, int z, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag) Restores theBlockSnapshot
at the given position.boolean
restoreSnapshot
(BlockSnapshot snapshot, boolean force, BlockChangeFlag flag) Restores the givenBlockSnapshot
using the saved block position stored within the snapshot.default boolean
restoreSnapshot
(Vector3i position, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag) Restores theBlockSnapshot
at the given position.boolean
save()
Instructs the world to save all data.boolean
Instructs the world to save and flush all data immediately.void
triggerExplosion
(Explosion explosion) Causes anExplosion
in a world.default UUID
uniqueId()
Gets the unique ID for this object.boolean
unloadChunk
(WorldChunk chunk) Unloads the given chunk from the world.Methods inherited from interface org.spongepowered.api.world.volume.archetype.ArchetypeVolumeCreator
createArchetypeVolume
Methods inherited from interface net.kyori.adventure.audience.Audience
deleteMessage, openBook, removeResourcePacks, removeResourcePacks, removeResourcePacks, sendActionBar, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlayerListFooter, sendPlayerListHeader, sendPlayerListHeaderAndFooter, sendResourcePacks, sendResourcePacks, showTitle, stopSound
Methods inherited from interface org.spongepowered.api.world.volume.biome.BiomeVolume
biome, biome
Methods inherited from interface org.spongepowered.api.world.volume.biome.BiomeVolume.Modifiable
setBiome, setBiome
Methods inherited from interface org.spongepowered.api.world.volume.biome.BiomeVolume.Streamable
biomeStream
Methods inherited from interface org.spongepowered.api.world.volume.block.entity.BlockEntityVolume
blockEntities, blockEntities, blockEntity, blockEntity
Methods inherited from interface org.spongepowered.api.world.volume.block.entity.BlockEntityVolume.Modifiable
addBlockEntity, addBlockEntity, removeBlockEntity, removeBlockEntity
Methods inherited from interface org.spongepowered.api.world.volume.block.entity.BlockEntityVolume.Streamable
blockEntityStream
Methods inherited from interface org.spongepowered.api.world.volume.block.BlockVolume
block, block, blockPalette, fluid, fluid, highestPositionAt, highestYAt, highestYAt
Methods inherited from interface org.spongepowered.api.world.volume.block.BlockVolume.Streamable
blockStateStream
Methods inherited from interface org.spongepowered.api.world.volume.game.ChunkVolume
chunkLayout, hasChunk, hasChunk, hasChunkAtBlock, hasChunkAtBlock, isChunkLoaded, isChunkLoaded, isChunkLoadedAtBlock, isChunkLoadedAtBlock
Methods inherited from interface org.spongepowered.api.service.context.ContextSource
context
Methods inherited from interface org.spongepowered.api.world.volume.entity.EntityVolume
entities, entities, entities, entities, entities, entity, nearbyEntities, nearestPlayer
Methods inherited from interface org.spongepowered.api.world.volume.entity.EntityVolume.Modifiable
createEntity, createEntity, createEntity, createEntity, createEntity, createEntity, createEntityNaturally, createEntityNaturally, createEntityNaturally, createEntityNaturally, spawnEntities, spawnEntity
Methods inherited from interface org.spongepowered.api.world.volume.entity.EntityVolume.Streamable
entityStream
Methods inherited from interface org.spongepowered.api.world.volume.game.EnvironmentalVolume
isSkylightMax, light, light, light, light, light, light
Methods inherited from interface net.kyori.adventure.audience.ForwardingAudience
clearResourcePacks, clearTitle, deleteMessage, filterAudience, forEachAudience, hideBossBar, openBook, playSound, playSound, playSound, pointers, removeResourcePacks, removeResourcePacks, resetTitle, sendActionBar, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlayerListFooter, sendPlayerListHeader, sendPlayerListHeaderAndFooter, sendResourcePacks, sendTitlePart, showBossBar, stopSound
Methods inherited from interface org.spongepowered.api.world.volume.game.GenerationVolume
hasBlockState, hasBlockState, hasBlockState, maximumHeight
Methods inherited from interface org.spongepowered.api.world.volume.game.HeightAwareVolume
height, height
Methods inherited from interface org.spongepowered.api.world.volume.game.InteractableVolume
blockDigTimeWith, blockDigTimeWith, digBlock, digBlock, digBlockWith, digBlockWith, hitBlock, hitBlock, interactBlock, interactBlock, interactBlockWith, interactBlockWith, placeBlock, placeBlock
Methods inherited from interface org.spongepowered.api.world.volume.game.LocationBaseDataHolder
get, get, get, get, getDouble, getDouble, getDouble, getDouble, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getValue, getValue, getValue, getValue, getValues, getValues, keys, keys, orElse, orElse, orElse, orElse, orElse, orElse, orElse, orElse, orNull, orNull, orNull, orNull, require, require, require, require, supports, supports, supports, supports, supports, supports
Methods inherited from interface org.spongepowered.api.world.volume.game.LocationBaseDataHolder.Mutable
copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, offer, offer, offer, offer, offer, offer, remove, remove, remove, remove, setRawData, setRawData, transform, transform, transform, transform, undo, undo, validateRawData, validateRawData
Methods inherited from interface org.spongepowered.api.world.LocationCreator
location, location, location, location
Methods inherited from interface org.spongepowered.api.world.volume.game.MutableGameVolume
destroyBlock, spawnEntity
Methods inherited from interface org.spongepowered.api.world.volume.block.PhysicsAwareMutableBlockVolume
setBlock, setBlock, setBlock, setBlock
Methods inherited from interface net.kyori.adventure.pointer.Pointered
get, getOrDefault, getOrDefaultFrom
Methods inherited from interface org.spongepowered.api.world.volume.game.PrimitiveGameVolume
emittedLight, emittedLight, height, maximumLight
Methods inherited from interface org.spongepowered.api.util.RandomProvider
random
Methods inherited from interface org.spongepowered.api.world.volume.game.Region
border, canSeeSky, canSeeSky, containsAnyLiquids, hasLiquid, hasLiquid, isAreaLoaded, isAreaLoaded, isAreaLoaded, isAreaLoaded, isAreaLoaded, isBlockLoaded, isBlockLoaded, isBlockLoaded, isBlockLoaded, isCollisionBoxesEmpty, isInBorder, seaLevel, setBorder, skylightSubtracted, worldType
Methods inherited from interface org.spongepowered.api.registry.RegistryHolder
findRegistry, registry, streamRegistries
Methods inherited from interface org.spongepowered.api.world.server.ServerLocationCreator
locatableBlock, locatableBlock
Methods inherited from interface org.spongepowered.api.world.volume.game.UpdatableVolume
scheduledBlockUpdates, scheduledFluidUpdates
Methods inherited from interface org.spongepowered.api.effect.Viewer
playMusicDisc, playMusicDisc, playSound, resetBlockChange, resetBlockChange, resetBlockProgress, resetBlockProgress, sendBlockChange, sendBlockChange, sendBlockProgress, sendBlockProgress, sendWorldType, spawnParticles, spawnParticles, stopMusicDisc, stopMusicDisc
Methods inherited from interface org.spongepowered.api.world.volume.Volume
available, contains, contains, isAreaAvailable, max, min, size
Methods inherited from interface org.spongepowered.api.world.weather.WeatherUniverse
weather
Methods inherited from interface org.spongepowered.api.world.weather.WeatherUniverse.Mutable
setWeather, setWeather
Methods inherited from interface org.spongepowered.api.world.World
audiences, chunk, chunk, closestPlayer, closestPlayer, closestPlayer, closestPlayer, closestPlayer, closestPlayer, isLoaded, loadChunk, loadChunk, loadedChunks, world
Methods inherited from interface org.spongepowered.api.world.WorldLike
difficulty, removeBlock, removeBlock, seed, setBlock, setBlock
-
Method Details
-
engine
Server engine()Description copied from interface:WorldLike
Gets theEngine
that simulates this world.- Specified by:
engine
in interfaceWorldLike<ServerWorld>
- Returns:
- The engine
-
properties
ServerWorldProperties properties()Description copied from interface:World
Gets theproperties
.- Specified by:
properties
in interfaceWorld<ServerWorld,
ServerLocation> - Returns:
- The properties
-
generator
ChunkGenerator generator() -
key
ResourceKey key()- Returns:
- The key
- See Also:
-
uniqueId
Description copied from interface:Identifiable
Gets the unique ID for this object.- Specified by:
uniqueId
in interfaceIdentifiable
- Returns:
- The unique id
- See Also:
-
chunkAtBlock
Description copied from interface:World
Gets the loaded chunk at the given block coordinate position. This gets a guaranteedWorldChunk
at the desired block position; however, theWorldChunk
instance may beempty
, 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 interfaceChunkVolume
- Specified by:
chunkAtBlock
in interfaceWorld<ServerWorld,
ServerLocation> - Parameters:
blockPosition
- The block position to be transformed for relative chunk position- Returns:
- The available chunk at that position
-
chunkAtBlock
Description copied from interface:World
Gets the loaded chunk at the given chunk coordinate position. The position is the block position relative to theChunk.chunkPosition()
, and therefor is going to return a different chunk fromChunkVolume.chunk(Vector3i)
. This is more usable fromServerLocation
s or aLocatable
that returns aposition
in relation to aWorldLike
. This gets a guaranteedWorldChunk
at the desired block position; however, theWorldChunk
instance may beempty
, 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 byServer.chunkLayout()
, which can vary depending on implementation and other mods installed.- Specified by:
chunkAtBlock
in interfaceChunkVolume
- Specified by:
chunkAtBlock
in interfaceWorld<ServerWorld,
ServerLocation> - Parameters:
bx
- The block x coordinateby
- The block y coordinatebz
- The block z coordinate- Returns:
- The available chunk at that position
-
createSnapshot
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
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 positiony
- The y positionz
- The z position- Returns:
- A snapshot
-
restoreSnapshot
Restores the givenBlockSnapshot
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 theBlockType
s 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 snapshotforce
- If true, forces block state to be set even if theBlockType
does not match the snapshot one.flag
- The various change flags controlling some interactions- Returns:
- True if the restore was successful, false otherwise
-
restoreSnapshot
default boolean restoreSnapshot(Vector3i position, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag) Restores theBlockSnapshot
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 theblock types
do not match, false will be returned. If notifyNeighbors istrue
, neighboring blocks will be notified of changes at the restored block location triggering physics updates.- Parameters:
position
- The position of the blocksnapshot
- The snapshotforce
- 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
boolean restoreSnapshot(int x, int y, int z, BlockSnapshot snapshot, boolean force, BlockChangeFlag flag) Restores theBlockSnapshot
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 theBlockType
s 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 positiony
- The Y positionz
- The Z positionsnapshot
- The snapshotforce
- If true, forces block state to be set even if theBlockType
does not match the snapshot one.flag
- The various change flags controlling some interactions- Returns:
- true if the restore was successful, false otherwise
-
directory
Path directory()Gets thePath
pointing to the root of where the world's data is being stored.- Returns:
- The path
-
save
Instructs the world to save all data.- Returns:
- True if save was successful, or false if
SerializationBehavior
isSerializationBehavior.NONE
- Throws:
IOException
- If the save failed- See Also:
-
saveAndFlush
Instructs the world to save and flush all data immediately.Note: May cause a short-term drop in server performance
- Returns:
- True if save was successful, or false if
SerializationBehavior
isSerializationBehavior.NONE
- Throws:
IOException
- If the save failed- See Also:
-
unloadChunk
Unloads the given chunk from the world. Returns aboolean
flag for whether the operation was successful.- Parameters:
chunk
- The chunk to unload- Returns:
- Whether the operation was successful
-
triggerExplosion
Causes anExplosion
in a world.- Parameters:
explosion
- The explosion to cause
-
players
Collection<ServerPlayer> players()Description copied from interface:World
Gets an unmodifiable collection ofplayers
currently in this world.- Specified by:
players
in interfaceEntityVolume
- Specified by:
players
in interfaceWorld<ServerWorld,
ServerLocation> - Returns:
- The players
-
raids
Collection<Raid> raids()Gets allRaid
s occuring in thisServerWorld
.Please note by default, some
WorldType
s such asWorldTypes.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
Gets theRaid
occurring at a position in the world.- Parameters:
blockPosition
- The location of the Raid.- Returns:
- The raid at that location, if present
-
dragonFightBossBar
Gets theBossBar
of the ender dragon fight occurring in thisServerWorld
.- Returns:
- The dragon fight boss bar, if present
-
chunkManager
ChunkManager chunkManager()Gets theChunkManager
for this world.- Returns:
- The chunk manager.
-
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
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.
-