Interface RegionAccessor
- All Superinterfaces:
FeatureFlagSetHolder
,Keyed
,Keyed
- All Known Subinterfaces:
LimitedRegion
,World
Biome
, BlockState
and Entity
,
as well as generating some basic structures.-
Method Summary
Modifier and TypeMethodDescription<T extends Entity>
TaddEntity
(T entity) Spawns a previously created entity in the world.<T extends Entity>
TcreateEntity
(@NotNull Location location, @NotNull Class<T> clazz) Creates an entity of a specific class at the givenLocation
but does not spawn it in the world.boolean
Creates a tree at the givenLocation
boolean
generateTree
(@NotNull Location location, @NotNull Random random, @NotNull TreeType type, @Nullable Consumer<? super BlockState> stateConsumer) Creates a tree at the givenLocation
boolean
generateTree
(@NotNull Location location, @NotNull Random random, @NotNull TreeType type, @Nullable Predicate<? super BlockState> statePredicate) Creates a tree at the givenLocation
getBiome
(int x, int y, int z) Gets theBiome
at the given coordinates.getBlockData
(int x, int y, int z) Gets theBlockData
at the given coordinates.getBlockData
(@NotNull Location location) getBlockState
(int x, int y, int z) Gets theBlockState
at the given coordinates.getBlockState
(@NotNull Location location) Gets theBlockState
at the givenLocation
.getComputedBiome
(int x, int y, int z) Gets the computedBiome
at the given coordinates.Get a list of all entities in this RegionAccessor<T extends Entity>
@NotNull Collection<T> getEntitiesByClass
(@NotNull Class<T> cls) Get a collection of all entities in this RegionAccessor matching the given class/interfacegetEntitiesByClasses
(@NotNull Class<?>... classes) Get a collection of all entities in this RegionAccessor matching any of the given classes/interfacesgetFluidData
(int x, int y, int z) Gets theFluidData
at the specified position.default FluidData
getFluidData
(Position position) Gets theFluidData
at the given positiondefault FluidData
getFluidData
(@NotNull Location location) Gets theFluidData
at the given positionint
getHighestBlockYAt
(int x, int z) Gets the highest non-empty (impassable) coordinate at the given coordinates.int
getHighestBlockYAt
(int x, int z, @NotNull HeightMap heightMap) Gets the highest coordinate corresponding to theHeightMap
at the given coordinates.int
getHighestBlockYAt
(@NotNull Location location) Gets the highest non-empty (impassable) coordinate at the givenLocation
.int
getHighestBlockYAt
(@NotNull Location location, @NotNull HeightMap heightMap) getKey()
Get the world's keyGet a list of all living entities in this RegionAccessorgetType
(int x, int y, int z) Gets the type of the block at the given coordinates.Gets the type of the block at the givenLocation
.boolean
hasCollisionsIn
(BoundingBox boundingBox) Checks if the world collides with the given boundingbox.boolean
lineOfSightExists
(@NotNull Location from, @NotNull Location to) Tell whether a line of sight exists between the given locationsvoid
Sets theBiome
for the given block coordinatesvoid
void
setBlockData
(int x, int y, int z, @NotNull BlockData blockData) Sets theBlockData
at the given coordinates.void
setBlockData
(@NotNull Location location, @NotNull BlockData blockData) void
Sets theMaterial
at the given coordinates.void
<T extends Entity>
TSpawn an entity of a specific class at the givenLocation
<T extends Entity>
Tspawn
(@NotNull Location location, @NotNull Class<T> clazz, boolean randomizeData, @Nullable Consumer<? super T> function) Creates a new entity at the givenLocation
with the supplied function run before the entity is added to the world.default <T extends Entity>
TSpawn an entity of a specific class at the givenLocation
, with the supplied function run before the entity is added to the world.<T extends Entity>
Tspawn
(@NotNull Location location, @NotNull Class<T> clazz, @Nullable Consumer<? super T> function, @NotNull CreatureSpawnEvent.SpawnReason reason) default <T extends Entity>
Tspawn
(@NotNull Location location, @NotNull Class<T> clazz, @NotNull CreatureSpawnEvent.SpawnReason reason) default <T extends Entity>
Tspawn
(@NotNull Location location, @NotNull Class<T> clazz, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer<? super T> function) spawnEntity
(@NotNull Location location, @NotNull EntityType type) Creates a entity at the givenLocation
spawnEntity
(@NotNull Location loc, @NotNull EntityType type, boolean randomizeData) Creates a new entity at the givenLocation
.spawnEntity
(@NotNull Location loc, @NotNull EntityType type, @NotNull CreatureSpawnEvent.SpawnReason reason) spawnEntity
(@NotNull Location loc, @NotNull EntityType type, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable Consumer<? super Entity> function) Methods inherited from interface io.papermc.paper.world.flag.FeatureFlagSetHolder
getFeatureFlags, isEnabled
-
Method Details
-
getBiome
- Parameters:
location
- the location of the biome- Returns:
- Biome at the given location
- See Also:
-
getBiome
Gets theBiome
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block- Returns:
- Biome at the given coordinates
- See Also:
-
getComputedBiome
Gets the computedBiome
at the given coordinates.The computed Biome is the Biome as seen by clients for rendering purposes and in the "F3" debug menu. This is computed by looking at the noise biome at this and surrounding quarts and applying complex math operations.
Most other Biome-related methods named getBiome, setBiome, and similar operate on the "noise biome", which is stored per-quart, or in other words, 1 Biome per 4x4x4 block region. This is how Biomes are currently generated and stored on disk.
- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block- Returns:
- Biome at the given coordinates
-
setBiome
- Parameters:
location
- the location of the biomebiome
- New Biome type for this block
-
setBiome
Sets theBiome
for the given block coordinates- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockbiome
- New Biome type for this block
-
getBlockState
Gets theBlockState
at the givenLocation
.- Parameters:
location
- The location of the block state- Returns:
- Block state at the given location
-
getBlockState
Gets theBlockState
at the given coordinates.- Parameters:
x
- X-coordinate of the block statey
- Y-coordinate of the block statez
- Z-coordinate of the block state- Returns:
- Block state at the given coordinates
-
getFluidData
Gets theFluidData
at the specified position.- Parameters:
x
- The x-coordinate of the positiony
- The y-coordinate of the positionz
- The z-coordinate of the position- Returns:
- The
FluidData
at the specified position
-
getFluidData
Gets theFluidData
at the given position- Parameters:
position
- The position of the fluid- Returns:
- The fluid data at the given position
-
getFluidData
Gets theFluidData
at the given position- Parameters:
location
- The location of the fluid- Returns:
- The fluid data at the given position
-
getBlockData
- Parameters:
location
- The location of the block data- Returns:
- Block data at the given location
-
getBlockData
Gets theBlockData
at the given coordinates.- Parameters:
x
- X-coordinate of the block datay
- Y-coordinate of the block dataz
- Z-coordinate of the block data- Returns:
- Block data at the given coordinates
-
getType
Gets the type of the block at the givenLocation
.- Parameters:
location
- The location of the block- Returns:
- Material at the given coordinates
-
getType
Gets the type of the block at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block- Returns:
- Material at the given coordinates
-
setBlockData
- Parameters:
location
- The location of the blockblockData
- The block data to set the block to
-
setBlockData
Sets theBlockData
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockblockData
- The block data to set the block to
-
setType
- Parameters:
location
- The location of the blockmaterial
- The type to set the block to
-
setType
Sets theMaterial
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockmaterial
- The type to set the block to
-
generateTree
boolean generateTree(@NotNull @NotNull Location location, @NotNull @NotNull Random random, @NotNull @NotNull TreeType type) Creates a tree at the givenLocation
- Parameters:
location
- Location to spawn the treerandom
- Random to use to generate the treetype
- Type of the tree to create- Returns:
- true if the tree was created successfully, otherwise false
-
generateTree
boolean generateTree(@NotNull @NotNull Location location, @NotNull @NotNull Random random, @NotNull @NotNull TreeType type, @Nullable @Nullable Consumer<? super BlockState> stateConsumer) Creates a tree at the givenLocation
The provided consumer gets called for every block which gets changed as a result of the tree generation. When the consumer gets called no modifications to the world are done yet. Which means, that calling
getBlockState(Location)
in the consumer will return the state of the block before the generation.Modifications done to the
BlockState
in the consumer are respected, which means that it is not necessary to callBlockState.update()
- Parameters:
location
- Location to spawn the treerandom
- Random to use to generate the treetype
- Type of the tree to createstateConsumer
- The consumer which should get called for every block which gets changed- Returns:
- true if the tree was created successfully, otherwise false
-
generateTree
boolean generateTree(@NotNull @NotNull Location location, @NotNull @NotNull Random random, @NotNull @NotNull TreeType type, @Nullable @Nullable Predicate<? super BlockState> statePredicate) Creates a tree at the givenLocation
The provided predicate gets called for every block which gets changed as a result of the tree generation. When the predicate gets called no modifications to the world are done yet. Which means, that calling
getBlockState(Location)
in the predicate will return the state of the block before the generation.If the predicate returns
true
the block gets set in the world. If it returnsfalse
the block won't get set in the world.- Parameters:
location
- Location to spawn the treerandom
- Random to use to generate the treetype
- Type of the tree to createstatePredicate
- The predicate which should get used to test if a block should be set or not.- Returns:
- true if the tree was created successfully, otherwise false
-
spawnEntity
@NotNull @NotNull Entity spawnEntity(@NotNull @NotNull Location location, @NotNull @NotNull EntityType type) Creates a entity at the givenLocation
- Parameters:
location
- The location to spawn the entitytype
- The entity to spawn- Returns:
- Resulting Entity of this method
-
spawnEntity
@NotNull @NotNull Entity spawnEntity(@NotNull @NotNull Location loc, @NotNull @NotNull EntityType type, boolean randomizeData) Creates a new entity at the givenLocation
.- Parameters:
loc
- the location at which the entity will be spawned.type
- the entity type that determines the entity to spawn.randomizeData
- whether or not the entity's data should be randomised before spawning. By default entities are randomised before spawning in regards to their equipment, age, attributes, etc. An example of this randomization would be the color of a sheep, random enchantments on the equipment of mobs or even a zombie becoming a chicken jockey. If set to false, the entity will not be randomised before spawning, meaning all their data will remain in their default state and not further modifications to the entity will be made. Notably only entities that extend theMob
interface provide randomisation logic for their spawn. This parameter is hence useless for any other type of entity.- Returns:
- the spawned entity instance.
-
getEntities
Get a list of all entities in this RegionAccessor- Returns:
- A List of all Entities currently residing in this world accessor
-
getLivingEntities
Get a list of all living entities in this RegionAccessor- Returns:
- A List of all LivingEntities currently residing in this world accessor
-
getEntitiesByClass
@NotNull <T extends Entity> @NotNull Collection<T> getEntitiesByClass(@NotNull @NotNull Class<T> cls) Get a collection of all entities in this RegionAccessor matching the given class/interface- Type Parameters:
T
- an entity subclass- Parameters:
cls
- The class representing the type of entity to match- Returns:
- A List of all Entities currently residing in this world accessor that match the given class/interface
-
getEntitiesByClasses
Get a collection of all entities in this RegionAccessor matching any of the given classes/interfaces- Parameters:
classes
- The classes representing the types of entity to match- Returns:
- A List of all Entities currently residing in this world accessor that match one or more of the given classes/interfaces
-
createEntity
@NotNull <T extends Entity> T createEntity(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz) Creates an entity of a specific class at the givenLocation
but does not spawn it in the world.Note: The created entity keeps a reference to the world it was created in, care should be taken that the entity does not outlive the world instance as this will lead to memory leaks.
-
spawn
@NotNull <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz) throws IllegalArgumentException Spawn an entity of a specific class at the givenLocation
- Type Parameters:
T
- the class of theEntity
to spawn- Parameters:
location
- theLocation
to spawn the entity atclazz
- the class of theEntity
to spawn- Returns:
- an instance of the spawned
Entity
- Throws:
IllegalArgumentException
- if either parameter is null or theEntity
requested cannot be spawned
-
spawn
@NotNull default <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz, @Nullable @Nullable Consumer<? super T> function) throws IllegalArgumentException Spawn an entity of a specific class at the givenLocation
, with the supplied function run before the entity is added to the world.
Note that when the function is run, the entity will not be actually in the world. Any operation involving such as teleporting the entity is undefined until after this function returns.- Type Parameters:
T
- the class of theEntity
to spawn- Parameters:
location
- theLocation
to spawn the entity atclazz
- the class of theEntity
to spawnfunction
- the function to be run before the entity is spawned.- Returns:
- an instance of the spawned
Entity
- Throws:
IllegalArgumentException
- if either parameter is null or theEntity
requested cannot be spawned
-
spawn
@NotNull default <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz, @NotNull CreatureSpawnEvent.SpawnReason reason) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
spawn
@NotNull default <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz, @NotNull CreatureSpawnEvent.SpawnReason reason, @Nullable @Nullable Consumer<? super T> function) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
spawnEntity
-
spawnEntity
-
spawn
@NotNull <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz, @Nullable @Nullable Consumer<? super T> function, @NotNull CreatureSpawnEvent.SpawnReason reason) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
spawn
@NotNull <T extends Entity> T spawn(@NotNull @NotNull Location location, @NotNull @NotNull Class<T> clazz, boolean randomizeData, @Nullable @Nullable Consumer<? super T> function) throws IllegalArgumentException Creates a new entity at the givenLocation
with the supplied function run before the entity is added to the world.
Note that when the function is run, the entity will not be actually in the world. Any operation involving such as teleporting the entity is undefined until after this function returns. The passed function however is run after the potential entity's spawn randomization and hence already allows access to the values of the mob, whether or not those were randomized, such as attributes or the entity equipment.- Type Parameters:
T
- the generic type of the entity that is being created.- Parameters:
location
- the location at which the entity will be spawned.clazz
- the class of theEntity
that is to be spawned.randomizeData
- whether or not the entity's data should be randomised before spawning. By default entities are randomised before spawning in regards to their equipment, age, attributes, etc. An example of this randomization would be the color of a sheep, random enchantments on the equipment of mobs or even a zombie becoming a chicken jockey. If set to false, the entity will not be randomised before spawning, meaning all their data will remain in their default state and not further modifications to the entity will be made. Notably only entities that extend theMob
interface provide randomisation logic for their spawn. This parameter is hence useless for any other type of entity.function
- the function to be run before the entity is spawned.- Returns:
- the spawned entity instance.
- Throws:
IllegalArgumentException
- if either the world or clazz parameter are null.
-
getHighestBlockYAt
int getHighestBlockYAt(int x, int z) Gets the highest non-empty (impassable) coordinate at the given coordinates.- Parameters:
x
- X-coordinate of the blocksz
- Z-coordinate of the blocks- Returns:
- Y-coordinate of the highest non-empty block
-
getHighestBlockYAt
Gets the highest non-empty (impassable) coordinate at the givenLocation
.- Parameters:
location
- Location of the blocks- Returns:
- Y-coordinate of the highest non-empty block
-
getHighestBlockYAt
Gets the highest coordinate corresponding to theHeightMap
at the given coordinates.- Parameters:
x
- X-coordinate of the blocksz
- Z-coordinate of the blocksheightMap
- the heightMap that is used to determine the highest point- Returns:
- Y-coordinate of the highest block corresponding to the
HeightMap
-
getHighestBlockYAt
- Parameters:
location
- Location of the blocksheightMap
- the heightMap that is used to determine the highest point- Returns:
- Y-coordinate of the highest block corresponding to the
HeightMap
-
addEntity
Spawns a previously created entity in the world.
The provided entity must not have already been spawned in a world.- Type Parameters:
T
- the generic type of the entity that is being added.- Parameters:
entity
- the entity to add- Returns:
- the entity now in the world
-
getMoonPhase
- Returns:
- the current moon phase at the current time in the world
-
getKey
Get the world's key -
lineOfSightExists
Tell whether a line of sight exists between the given locations- Parameters:
from
- Location to start atto
- target Location- Returns:
- whether a line of sight exists between
from
andto
-
hasCollisionsIn
Checks if the world collides with the given boundingbox. This will check for any colliding hard entities (boats, shulkers) / worldborder / blocks. Does not load chunks that are within the bounding box.- Parameters:
boundingBox
- the box to check collisions in- Returns:
- collides or not
-