Metadatable
, PluginMessageRecipient
public interface World extends PluginMessageRecipient, Metadatable
Modifier and Type | Interface | Description |
---|---|---|
static class |
World.Environment |
Represents various map environment types that a world may be
|
static class |
World.Spigot |
Modifier and Type | Method | Description |
---|---|---|
boolean |
canGenerateStructures() |
Gets whether or not structures are being generated.
|
boolean |
createExplosion(double x,
double y,
double z,
float power) |
Creates explosion at given coordinates with given power
|
boolean |
createExplosion(double x,
double y,
double z,
float power,
boolean setFire) |
Creates explosion at given coordinates with given power and optionally
setting blocks on fire.
|
boolean |
createExplosion(double x,
double y,
double z,
float power,
boolean setFire,
boolean breakBlocks) |
Creates explosion at given coordinates with given power and optionally
setting blocks on fire or breaking blocks.
|
boolean |
createExplosion(Location loc,
float power) |
Creates explosion at given coordinates with given power
|
boolean |
createExplosion(Location loc,
float power,
boolean setFire) |
Creates explosion at given coordinates with given power and optionally
setting blocks on fire.
|
Item |
dropItem(Location location,
ItemStack item) |
Drops an item at the specified
Location |
Item |
dropItemNaturally(Location location,
ItemStack item) |
Drops an item at the specified
Location with a random offset |
boolean |
generateTree(Location location,
TreeType type) |
Creates a tree at the given
Location |
boolean |
generateTree(Location loc,
TreeType type,
BlockChangeDelegate delegate) |
Creates a tree at the given
Location |
boolean |
getAllowAnimals() |
Gets whether animals can spawn in this world.
|
boolean |
getAllowMonsters() |
Gets whether monsters can spawn in this world.
|
int |
getAmbientSpawnLimit() |
Gets the limit for number of ambient mobs that can spawn in a chunk in
this world
|
int |
getAnimalSpawnLimit() |
Gets the limit for number of animals that can spawn in a chunk in this
world
|
Biome |
getBiome(int x,
int z) |
Gets the biome for the given block coordinates.
|
Block |
getBlockAt(int x,
int y,
int z) |
Gets the
Block at the given coordinates |
Block |
getBlockAt(Location location) |
|
Chunk |
getChunkAt(int x,
int z) |
Gets the
Chunk at the given coordinates |
Chunk |
getChunkAt(Block block) |
|
Chunk |
getChunkAt(Location location) |
|
Difficulty |
getDifficulty() |
Gets the Difficulty of the world.
|
ChunkSnapshot |
getEmptyChunkSnapshot(int x,
int z,
boolean includeBiome,
boolean includeBiomeTemp) |
Get empty chunk snapshot (equivalent to all air blocks), optionally
including valid biome data.
|
List<Entity> |
getEntities() |
Get a list of all entities in this World
|
<T extends Entity> |
getEntitiesByClass(Class<T> cls) |
Get a collection of all entities in this World matching the given
class/interface
|
<T extends Entity> |
getEntitiesByClass(Class<T>... classes) |
Deprecated.
|
Collection<Entity> |
getEntitiesByClasses(Class<?>... classes) |
Get a collection of all entities in this World matching any of the
given classes/interfaces
|
World.Environment |
getEnvironment() |
Gets the
World.Environment type of this world |
Collection<Chunk> |
getForceLoadedChunks() |
Returns all force loaded chunks in this world.
|
long |
getFullTime() |
Gets the full in-game time on this world
|
<T> T |
getGameRuleDefault(GameRule<T> rule) |
Get the default value for a given
GameRule . |
String[] |
getGameRules() |
Get an array containing the names of all the
GameRule s. |
String |
getGameRuleValue(String rule) |
Deprecated.
use
getGameRuleValue(GameRule) instead |
<T> T |
getGameRuleValue(GameRule<T> rule) |
Get the current value for a given
GameRule . |
ChunkGenerator |
getGenerator() |
Gets the chunk generator for this world
|
Block |
getHighestBlockAt(int x,
int z) |
Gets the lowest block at the given coordinates such that the block and
all blocks above it are transparent for lighting purposes.
|
Block |
getHighestBlockAt(Location location) |
Gets the lowest block at the given
Location such that the block
and all blocks above it are transparent for lighting purposes. |
int |
getHighestBlockYAt(int x,
int z) |
Gets the y coordinate of the lowest block at this position such that the
block and all blocks above it are transparent for lighting purposes.
|
int |
getHighestBlockYAt(Location location) |
Gets the y coordinate of the lowest block at the given
Location
such that the block and all blocks above it are transparent for lighting
purposes. |
double |
getHumidity(int x,
int z) |
Gets the humidity for the given block coordinates.
|
boolean |
getKeepSpawnInMemory() |
Gets whether the world's spawn area should be kept loaded into memory
or not.
|
List<LivingEntity> |
getLivingEntities() |
Get a list of all living entities in this World
|
Chunk[] |
getLoadedChunks() |
Gets an array of all loaded
Chunk s |
int |
getMaxHeight() |
Gets the maximum height of this world.
|
int |
getMonsterSpawnLimit() |
Gets limit for number of monsters that can spawn in a chunk in this
world
|
String |
getName() |
Gets the unique name of this world
|
Collection<Entity> |
getNearbyEntities(Location location,
double x,
double y,
double z) |
Returns a list of entities within a bounding box centered around a
Location.
|
Collection<Entity> |
getNearbyEntities(Location location,
double x,
double y,
double z,
Predicate<Entity> filter) |
Returns a list of entities within a bounding box centered around a
Location.
|
Collection<Entity> |
getNearbyEntities(BoundingBox boundingBox) |
Returns a list of entities within the given bounding box.
|
Collection<Entity> |
getNearbyEntities(BoundingBox boundingBox,
Predicate<Entity> filter) |
Returns a list of entities within the given bounding box.
|
List<Player> |
getPlayers() |
Get a list of all players in this World
|
List<BlockPopulator> |
getPopulators() |
Gets a list of all applied
BlockPopulator s for this World |
boolean |
getPVP() |
Gets the current PVP setting for this world.
|
int |
getSeaLevel() |
Gets the sea level for this world.
|
long |
getSeed() |
Gets the Seed for this world.
|
Location |
getSpawnLocation() |
Gets the default spawn
Location of this world |
double |
getTemperature(int x,
int z) |
Gets the temperature for the given block coordinates.
|
int |
getThunderDuration() |
Get the thundering duration.
|
long |
getTicksPerAnimalSpawns() |
Gets the world's ticks per animal spawns value
|
long |
getTicksPerMonsterSpawns() |
Gets the world's ticks per monster spawns value
|
long |
getTime() |
Gets the relative in-game time of this world.
|
UUID |
getUID() |
Gets the Unique ID of this world
|
int |
getWaterAnimalSpawnLimit() |
Gets the limit for number of water animals that can spawn in a chunk in
this world
|
int |
getWeatherDuration() |
Get the remaining time in ticks of the current conditions.
|
WorldBorder |
getWorldBorder() |
Gets the world border for this world.
|
File |
getWorldFolder() |
Gets the folder of this world on disk.
|
WorldType |
getWorldType() |
Gets the type of this world.
|
boolean |
hasStorm() |
Returns whether the world has an ongoing storm.
|
boolean |
isAutoSave() |
Gets whether or not the world will automatically save
|
boolean |
isChunkForceLoaded(int x,
int z) |
Gets whether the chunk at the specified chunk coordinates is force
loaded.
|
boolean |
isChunkGenerated(int x,
int z) |
Checks if the
Chunk at the specified coordinates is generated |
boolean |
isChunkInUse(int x,
int z) |
Deprecated.
This method was added to facilitate chunk garbage collection.
As of the current Minecraft version chunks are now strictly managed and
will not be loaded for more than 1 tick unless they are in use.
|
boolean |
isChunkLoaded(int x,
int z) |
Checks if the
Chunk at the specified coordinates is loaded |
boolean |
isChunkLoaded(Chunk chunk) |
Checks if the specified
Chunk is loaded |
boolean |
isGameRule(String rule) |
Checks if string is a valid game rule
|
boolean |
isThundering() |
Returns whether there is thunder.
|
void |
loadChunk(int x,
int z) |
Loads the
Chunk at the specified coordinates. |
boolean |
loadChunk(int x,
int z,
boolean generate) |
Loads the
Chunk at the specified coordinates. |
void |
loadChunk(Chunk chunk) |
Loads the specified
Chunk . |
Location |
locateNearestStructure(Location origin,
StructureType structureType,
int radius,
boolean findUnexplored) |
Find the closest nearby structure of a given
StructureType . |
void |
playEffect(Location location,
Effect effect,
int data) |
Plays an effect to all players within a default radius around a given
location.
|
void |
playEffect(Location location,
Effect effect,
int data,
int radius) |
Plays an effect to all players within a given radius around a location.
|
<T> void |
playEffect(Location location,
Effect effect,
T data) |
Plays an effect to all players within a default radius around a given
location.
|
<T> void |
playEffect(Location location,
Effect effect,
T data,
int radius) |
Plays an effect to all players within a given radius around a location.
|
void |
playSound(Location location,
String sound,
float volume,
float pitch) |
Play a Sound at the provided Location in the World.
|
void |
playSound(Location location,
String sound,
SoundCategory category,
float volume,
float pitch) |
Play a Sound at the provided Location in the World.
|
void |
playSound(Location location,
Sound sound,
float volume,
float pitch) |
Play a Sound at the provided Location in the World
|
void |
playSound(Location location,
Sound sound,
SoundCategory category,
float volume,
float pitch) |
Play a Sound at the provided Location in the World.
|
RayTraceResult |
rayTrace(Location start,
Vector direction,
double maxDistance,
FluidCollisionMode fluidCollisionMode,
boolean ignorePassableBlocks,
double raySize,
Predicate<Entity> filter) |
Performs a ray trace that checks for both block and entity collisions.
|
RayTraceResult |
rayTraceBlocks(Location start,
Vector direction,
double maxDistance) |
Performs a ray trace that checks for block collisions using the blocks'
precise collision shapes.
|
RayTraceResult |
rayTraceBlocks(Location start,
Vector direction,
double maxDistance,
FluidCollisionMode fluidCollisionMode) |
Performs a ray trace that checks for block collisions using the blocks'
precise collision shapes.
|
RayTraceResult |
rayTraceBlocks(Location start,
Vector direction,
double maxDistance,
FluidCollisionMode fluidCollisionMode,
boolean ignorePassableBlocks) |
Performs a ray trace that checks for block collisions using the blocks'
precise collision shapes.
|
RayTraceResult |
rayTraceEntities(Location start,
Vector direction,
double maxDistance) |
Performs a ray trace that checks for entity collisions.
|
RayTraceResult |
rayTraceEntities(Location start,
Vector direction,
double maxDistance,
double raySize) |
Performs a ray trace that checks for entity collisions.
|
RayTraceResult |
rayTraceEntities(Location start,
Vector direction,
double maxDistance,
double raySize,
Predicate<Entity> filter) |
Performs a ray trace that checks for entity collisions.
|
RayTraceResult |
rayTraceEntities(Location start,
Vector direction,
double maxDistance,
Predicate<Entity> filter) |
Performs a ray trace that checks for entity collisions.
|
boolean |
refreshChunk(int x,
int z) |
Deprecated.
This method is not guaranteed to work suitably across all client implementations.
|
boolean |
regenerateChunk(int x,
int z) |
Deprecated.
regenerating a single chunk is not likely to produce the same
chunk as before as terrain decoration may be spread across chunks. Use of
this method should be avoided as it is known to produce buggy results.
|
void |
save() |
Saves world to disk
|
void |
setAmbientSpawnLimit(int limit) |
Sets the limit for number of ambient mobs that can spawn in a chunk in
this world
|
void |
setAnimalSpawnLimit(int limit) |
Sets the limit for number of animals that can spawn in a chunk in this
world
|
void |
setAutoSave(boolean value) |
Sets whether or not the world will automatically save
|
void |
setBiome(int x,
int z,
Biome bio) |
Sets the biome for the given block coordinates
|
void |
setChunkForceLoaded(int x,
int z,
boolean forced) |
Sets whether the chunk at the specified chunk coordinates is force
loaded.
|
void |
setDifficulty(Difficulty difficulty) |
Sets the Difficulty of the world.
|
void |
setFullTime(long time) |
Sets the in-game time on the server
|
<T> boolean |
setGameRule(GameRule<T> rule,
T newValue) |
Set the given
GameRule 's new value. |
boolean |
setGameRuleValue(String rule,
String value) |
Deprecated.
use
setGameRule(GameRule, Object) instead. |
void |
setKeepSpawnInMemory(boolean keepLoaded) |
Sets whether the world's spawn area should be kept loaded into memory
or not.
|
void |
setMonsterSpawnLimit(int limit) |
Sets the limit for number of monsters that can spawn in a chunk in this
world
|
void |
setPVP(boolean pvp) |
Sets the PVP setting for this world.
|
void |
setSpawnFlags(boolean allowMonsters,
boolean allowAnimals) |
Sets the spawn flags for this.
|
boolean |
setSpawnLocation(int x,
int y,
int z) |
Sets the spawn location of the world
|
boolean |
setSpawnLocation(Location location) |
Sets the spawn location of the world.
|
void |
setStorm(boolean hasStorm) |
Set whether there is a storm.
|
void |
setThunderDuration(int duration) |
Set the thundering duration.
|
void |
setThundering(boolean thundering) |
Set whether it is thundering.
|
void |
setTicksPerAnimalSpawns(int ticksPerAnimalSpawns) |
Sets the world's ticks per animal spawns value
|
void |
setTicksPerMonsterSpawns(int ticksPerMonsterSpawns) |
Sets the world's ticks per monster spawns value
|
void |
setTime(long time) |
Sets the relative in-game time on the server.
|
void |
setWaterAnimalSpawnLimit(int limit) |
Sets the limit for number of water animals that can spawn in a chunk in
this world
|
void |
setWeatherDuration(int duration) |
Set the remaining time in ticks of the current conditions.
|
<T extends Entity> |
spawn(Location location,
Class<T> clazz) |
Spawn an entity of a specific class at the given
Location |
<T extends Entity> |
spawn(Location location,
Class<T> clazz,
Consumer<T> function) |
Spawn an entity of a specific class at the given
Location , with
the supplied function run before the entity is added to the world. |
Arrow |
spawnArrow(Location location,
Vector direction,
float speed,
float spread) |
|
<T extends AbstractArrow> |
spawnArrow(Location location,
Vector direction,
float speed,
float spread,
Class<T> clazz) |
Creates an arrow entity of the given class at the given
Location |
Entity |
spawnEntity(Location loc,
EntityType type) |
Creates a entity at the given
Location |
FallingBlock |
spawnFallingBlock(Location location,
BlockData data) |
|
FallingBlock |
spawnFallingBlock(Location location,
MaterialData data) |
|
FallingBlock |
spawnFallingBlock(Location location,
Material material,
byte data) |
Deprecated.
Magic value
|
void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count) |
Spawns the particle (the number of times specified by count)
at the target location.
|
void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
double offsetX,
double offsetY,
double offsetZ) |
Spawns the particle (the number of times specified by count)
at the target location.
|
void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra,
T data,
boolean force) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
double offsetX,
double offsetY,
double offsetZ,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
double x,
double y,
double z,
int count,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
void |
spawnParticle(Particle particle,
Location location,
int count) |
Spawns the particle (the number of times specified by count)
at the target location.
|
void |
spawnParticle(Particle particle,
Location location,
int count,
double offsetX,
double offsetY,
double offsetZ) |
Spawns the particle (the number of times specified by count)
at the target location.
|
void |
spawnParticle(Particle particle,
Location location,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
Location location,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
Location location,
int count,
double offsetX,
double offsetY,
double offsetZ,
double extra,
T data,
boolean force) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
Location location,
int count,
double offsetX,
double offsetY,
double offsetZ,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
<T> void |
spawnParticle(Particle particle,
Location location,
int count,
T data) |
Spawns the particle (the number of times specified by count)
at the target location.
|
World.Spigot |
spigot() |
|
LightningStrike |
strikeLightning(Location loc) |
Strikes lightning at the given
Location |
LightningStrike |
strikeLightningEffect(Location loc) |
Strikes lightning at the given
Location without doing damage |
boolean |
unloadChunk(int x,
int z) |
Safely unloads and saves the
Chunk at the specified coordinates |
boolean |
unloadChunk(int x,
int z,
boolean save) |
Safely unloads and optionally saves the
Chunk at the specified
coordinates. |
boolean |
unloadChunk(Chunk chunk) |
Safely unloads and saves the
Chunk at the specified coordinates |
boolean |
unloadChunkRequest(int x,
int z) |
Safely queues the
Chunk at the specified coordinates for
unloading. |
getMetadata, hasMetadata, removeMetadata, setMetadata
getListeningPluginChannels, sendPluginMessage
@NotNull Block getBlockAt(int x, int y, int z)
Block
at the given coordinatesx
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block@NotNull Block getBlockAt(@NotNull Location location)
location
- Location of the blockint getHighestBlockYAt(int x, int z)
x
- X-coordinate of the blocksz
- Z-coordinate of the blocksint getHighestBlockYAt(@NotNull Location location)
Location
such that the block and all blocks above it are transparent for lighting
purposes.location
- Location of the blocks@NotNull Block getHighestBlockAt(int x, int z)
x
- X-coordinate of the blockz
- Z-coordinate of the block@NotNull Block getHighestBlockAt(@NotNull Location location)
Location
such that the block
and all blocks above it are transparent for lighting purposes.location
- Coordinates to get the highest block@NotNull Chunk getChunkAt(int x, int z)
Chunk
at the given coordinatesx
- X-coordinate of the chunkz
- Z-coordinate of the chunk@NotNull Chunk getChunkAt(@NotNull Location location)
location
- Location of the chunk@NotNull Chunk getChunkAt(@NotNull Block block)
block
- Block to get the containing chunk fromboolean isChunkLoaded(@NotNull Chunk chunk)
Chunk
is loadedchunk
- The chunk to check@NotNull Chunk[] getLoadedChunks()
Chunk
svoid loadChunk(@NotNull Chunk chunk)
Chunk
.
This method will keep the specified chunk loaded until one of the unload methods is manually called. Callers are advised to instead use getChunkAt which will only temporarily load the requested chunk.
chunk
- The chunk to loadboolean isChunkLoaded(int x, int z)
Chunk
at the specified coordinates is loadedx
- X-coordinate of the chunkz
- Z-coordinate of the chunkboolean isChunkGenerated(int x, int z)
Chunk
at the specified coordinates is generatedx
- X-coordinate of the chunkz
- Z-coordinate of the chunk@Deprecated boolean isChunkInUse(int x, int z)
Chunk
at the specified coordinates is loaded and
in use by one or more playersx
- X-coordinate of the chunkz
- Z-coordinate of the chunkvoid loadChunk(int x, int z)
Chunk
at the specified coordinates.
This method will keep the specified chunk loaded until one of the unload methods is manually called. Callers are advised to instead use getChunkAt which will only temporarily load the requested chunk.
If the chunk does not exist, it will be generated.
This method is analogous to loadChunk(int, int, boolean)
where
generate is true.
x
- X-coordinate of the chunkz
- Z-coordinate of the chunkboolean loadChunk(int x, int z, boolean generate)
Chunk
at the specified coordinates.
This method will keep the specified chunk loaded until one of the unload methods is manually called. Callers are advised to instead use getChunkAt which will only temporarily load the requested chunk.
x
- X-coordinate of the chunkz
- Z-coordinate of the chunkgenerate
- Whether or not to generate a chunk if it doesn't
already existboolean unloadChunk(@NotNull Chunk chunk)
Chunk
at the specified coordinates
This method is analogous to unloadChunk(int, int, boolean)
where save is true.
chunk
- the chunk to unloadboolean unloadChunk(int x, int z)
Chunk
at the specified coordinates
This method is analogous to unloadChunk(int, int, boolean)
where save is true.
x
- X-coordinate of the chunkz
- Z-coordinate of the chunkboolean unloadChunk(int x, int z, boolean save)
Chunk
at the specified
coordinates.x
- X-coordinate of the chunkz
- Z-coordinate of the chunksave
- Whether or not to save the chunkboolean unloadChunkRequest(int x, int z)
Chunk
at the specified coordinates for
unloading.x
- X-coordinate of the chunkz
- Z-coordinate of the chunk@Deprecated boolean regenerateChunk(int x, int z)
Chunk
at the specified coordinatesx
- X-coordinate of the chunkz
- Z-coordinate of the chunk@Deprecated boolean refreshChunk(int x, int z)
Chunk
to all clientsx
- X-coordinate of the chunkz
- Z-coordinate of the chunkboolean isChunkForceLoaded(int x, int z)
A force loaded chunk will not be unloaded due to lack of player activity.
x
- X-coordinate of the chunkz
- Z-coordinate of the chunkvoid setChunkForceLoaded(int x, int z, boolean forced)
A force loaded chunk will not be unloaded due to lack of player activity.
x
- X-coordinate of the chunkz
- Z-coordinate of the chunkforced
- force load status@NotNull Collection<Chunk> getForceLoadedChunks()
A force loaded chunk will not be unloaded due to lack of player activity.
@NotNull Item dropItem(@NotNull Location location, @NotNull ItemStack item)
Location
location
- Location to drop the itemitem
- ItemStack to drop@NotNull Item dropItemNaturally(@NotNull Location location, @NotNull ItemStack item)
Location
with a random offsetlocation
- Location to drop the itemitem
- ItemStack to drop@NotNull Arrow spawnArrow(@NotNull Location location, @NotNull Vector direction, float speed, float spread)
location
- Location to spawn the arrowdirection
- Direction to shoot the arrow inspeed
- Speed of the arrow. A recommend speed is 0.6spread
- Spread of the arrow. A recommend spread is 12@NotNull <T extends AbstractArrow> T spawnArrow(@NotNull Location location, @NotNull Vector direction, float speed, float spread, @NotNull Class<T> clazz)
Location
T
- type of arrow to spawnlocation
- Location to spawn the arrowdirection
- Direction to shoot the arrow inspeed
- Speed of the arrow. A recommend speed is 0.6spread
- Spread of the arrow. A recommend spread is 12clazz
- the Entity class for the arrow
SpectralArrow
,Arrow
,TippedArrow
boolean generateTree(@NotNull Location location, @NotNull TreeType type)
Location
location
- Location to spawn the treetype
- Type of the tree to createboolean generateTree(@NotNull Location loc, @NotNull TreeType type, @NotNull BlockChangeDelegate delegate)
Location
loc
- Location to spawn the treetype
- Type of the tree to createdelegate
- A class to call for each block changed as a result of
this method@NotNull Entity spawnEntity(@NotNull Location loc, @NotNull EntityType type)
Location
loc
- The location to spawn the entitytype
- The entity to spawn@NotNull LightningStrike strikeLightning(@NotNull Location loc)
Location
loc
- The location to strike lightning@NotNull LightningStrike strikeLightningEffect(@NotNull Location loc)
Location
without doing damageloc
- The location to strike lightning@NotNull List<Entity> getEntities()
@NotNull List<LivingEntity> getLivingEntities()
@Deprecated @NotNull <T extends Entity> Collection<T> getEntitiesByClass(@NotNull Class<T>... classes)
T
- an entity subclassclasses
- The classes representing the types of entity to match@NotNull <T extends Entity> Collection<T> getEntitiesByClass(@NotNull Class<T> cls)
T
- an entity subclasscls
- The class representing the type of entity to match@NotNull Collection<Entity> getEntitiesByClasses(@NotNull Class<?>... classes)
classes
- The classes representing the types of entity to match@NotNull List<Player> getPlayers()
@NotNull Collection<Entity> getNearbyEntities(@NotNull Location location, double x, double y, double z)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the size of the search bounding box.
location
- The center of the bounding boxx
- 1/2 the size of the box along x axisy
- 1/2 the size of the box along y axisz
- 1/2 the size of the box along z axis@NotNull Collection<Entity> getNearbyEntities(@NotNull Location location, double x, double y, double z, @Nullable Predicate<Entity> filter)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the size of the search bounding box.
location
- The center of the bounding boxx
- 1/2 the size of the box along x axisy
- 1/2 the size of the box along y axisz
- 1/2 the size of the box along z axisfilter
- only entities that fulfill this predicate are considered,
or null
to consider all entities@NotNull Collection<Entity> getNearbyEntities(@NotNull BoundingBox boundingBox)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the size of the search bounding box.
boundingBox
- the bounding box@NotNull Collection<Entity> getNearbyEntities(@NotNull BoundingBox boundingBox, @Nullable Predicate<Entity> filter)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the size of the search bounding box.
boundingBox
- the bounding boxfilter
- only entities that fulfill this predicate are considered,
or null
to consider all entities@Nullable RayTraceResult rayTraceEntities(@NotNull Location start, @NotNull Vector direction, double maxDistance)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the maximum distance.
start
- the start positiondirection
- the ray directionmaxDistance
- the maximum distancenull
if there
is no hitrayTraceEntities(Location, Vector, double, double, Predicate)
@Nullable RayTraceResult rayTraceEntities(@NotNull Location start, @NotNull Vector direction, double maxDistance, double raySize)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the maximum distance.
start
- the start positiondirection
- the ray directionmaxDistance
- the maximum distanceraySize
- entity bounding boxes will be uniformly expanded (or
shrinked) by this value before doing collision checksnull
if there
is no hitrayTraceEntities(Location, Vector, double, double, Predicate)
@Nullable RayTraceResult rayTraceEntities(@NotNull Location start, @NotNull Vector direction, double maxDistance, @Nullable Predicate<Entity> filter)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the maximum distance.
start
- the start positiondirection
- the ray directionmaxDistance
- the maximum distancefilter
- only entities that fulfill this predicate are considered,
or null
to consider all entitiesnull
if there
is no hitrayTraceEntities(Location, Vector, double, double, Predicate)
@Nullable RayTraceResult rayTraceEntities(@NotNull Location start, @NotNull Vector direction, double maxDistance, double raySize, @Nullable Predicate<Entity> filter)
This may not consider entities in currently unloaded chunks. Some implementations may impose artificial restrictions on the maximum distance.
start
- the start positiondirection
- the ray directionmaxDistance
- the maximum distanceraySize
- entity bounding boxes will be uniformly expanded (or
shrinked) by this value before doing collision checksfilter
- only entities that fulfill this predicate are considered,
or null
to consider all entitiesnull
if there
is no hit@Nullable RayTraceResult rayTraceBlocks(@NotNull Location start, @NotNull Vector direction, double maxDistance)
This takes collisions with passable blocks into account, but ignores fluids.
This may cause loading of chunks! Some implementations may impose artificial restrictions on the maximum distance.
start
- the start locationdirection
- the ray directionmaxDistance
- the maximum distancenull
if there is no hitrayTraceBlocks(Location, Vector, double, FluidCollisionMode, boolean)
@Nullable RayTraceResult rayTraceBlocks(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode)
This takes collisions with passable blocks into account.
This may cause loading of chunks! Some implementations may impose artificial restrictions on the maximum distance.
start
- the start locationdirection
- the ray directionmaxDistance
- the maximum distancefluidCollisionMode
- the fluid collision modenull
if there is no hitrayTraceBlocks(Location, Vector, double, FluidCollisionMode, boolean)
@Nullable RayTraceResult rayTraceBlocks(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks)
If collisions with passable blocks are ignored, fluid collisions are ignored as well regardless of the fluid collision mode.
Portal blocks are only considered passable if the ray starts within them. Apart from that collisions with portal blocks will be considered even if collisions with passable blocks are otherwise ignored.
This may cause loading of chunks! Some implementations may impose artificial restrictions on the maximum distance.
start
- the start locationdirection
- the ray directionmaxDistance
- the maximum distancefluidCollisionMode
- the fluid collision modeignorePassableBlocks
- whether to ignore passable but collidable
blocks (ex. tall grass, signs, fluids, ..)null
if there is no hit@Nullable RayTraceResult rayTrace(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks, double raySize, @Nullable Predicate<Entity> filter)
Block collisions use the blocks' precise collision shapes. The
raySize
parameter is only taken into account for entity
collision checks.
If collisions with passable blocks are ignored, fluid collisions are ignored as well regardless of the fluid collision mode.
Portal blocks are only considered passable if the ray starts within them. Apart from that collisions with portal blocks will be considered even if collisions with passable blocks are otherwise ignored.
This may cause loading of chunks! Some implementations may impose artificial restrictions on the maximum distance.
start
- the start locationdirection
- the ray directionmaxDistance
- the maximum distancefluidCollisionMode
- the fluid collision modeignorePassableBlocks
- whether to ignore passable but collidable
blocks (ex. tall grass, signs, fluids, ..)raySize
- entity bounding boxes will be uniformly expanded (or
shrinked) by this value before doing collision checksfilter
- only entities that fulfill this predicate are considered,
or null
to consider all entitiesnull
if there is no hit@NotNull String getName()
@NotNull UUID getUID()
@NotNull Location getSpawnLocation()
Location
of this world@NotNull boolean setSpawnLocation(@NotNull Location location)
location
- The Location
to set the spawn for this world at.boolean setSpawnLocation(int x, int y, int z)
x
- X coordinatey
- Y coordinatez
- Z coordinatelong getTime()
The relative time is analogous to hours * 1000
Returns an absolute time of this world
void setTime(long time)
The relative time is analogous to hours * 1000
Note that setting the relative time below the current relative time
will actually move the clock forward a day. If you require to rewind
time, please see setFullTime(long)
time
- The new relative time to set the in-game time to (in
hours*1000)Sets the absolute time of this world
long getFullTime()
Returns a relative time of this world
void setFullTime(long time)
Note that this sets the full time of the world, which may cause adverse effects such as breaking redstone clocks and any scheduled events
time
- The new absolute time to set this world toSets the relative time of this world
boolean hasStorm()
void setStorm(boolean hasStorm)
hasStorm
- Whether there is rain and snowint getWeatherDuration()
void setWeatherDuration(int duration)
duration
- Time in ticksboolean isThundering()
void setThundering(boolean thundering)
thundering
- Whether it is thunderingint getThunderDuration()
void setThunderDuration(int duration)
duration
- Duration in ticksboolean createExplosion(double x, double y, double z, float power)
x
- X coordinatey
- Y coordinatez
- Z coordinatepower
- The power of explosion, where 4F is TNTboolean createExplosion(double x, double y, double z, float power, boolean setFire)
x
- X coordinatey
- Y coordinatez
- Z coordinatepower
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on fireboolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks)
x
- X coordinatey
- Y coordinatez
- Z coordinatepower
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on firebreakBlocks
- Whether or not to have blocks be destroyedboolean createExplosion(@NotNull Location loc, float power)
loc
- Location to blow uppower
- The power of explosion, where 4F is TNTboolean createExplosion(@NotNull Location loc, float power, boolean setFire)
loc
- Location to blow uppower
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on fire@NotNull World.Environment getEnvironment()
World.Environment
type of this worldlong getSeed()
boolean getPVP()
void setPVP(boolean pvp)
pvp
- True/False whether PVP should be Enabled.@Nullable ChunkGenerator getGenerator()
void save()
@NotNull List<BlockPopulator> getPopulators()
BlockPopulator
s for this World@NotNull <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz) throws IllegalArgumentException
Location
T
- the class of the Entity
to spawnlocation
- the Location
to spawn the entity atclazz
- the class of the Entity
to spawnEntity
IllegalArgumentException
- if either parameter is null or the
Entity
requested cannot be spawned@NotNull <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, @Nullable Consumer<T> function) throws IllegalArgumentException
Location
, with
the supplied function run before the entity is added to the world.
T
- the class of the Entity
to spawnlocation
- the Location
to spawn the entity atclazz
- the class of the Entity
to spawnfunction
- the function to be run before the entity is spawned.Entity
IllegalArgumentException
- if either parameter is null or the
Entity
requested cannot be spawned@NotNull FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull MaterialData data) throws IllegalArgumentException
FallingBlock
entity at the given Location
of
the specified Material
. The material dictates what is falling.
When the FallingBlock hits the ground, it will place that block.
The Material must be a block type, check with material.isBlock()
. The Material may not be air.
location
- The Location
to spawn the FallingBlockdata
- The block dataFallingBlock
instanceIllegalArgumentException
- if Location
or MaterialData
are null or Material
of the MaterialData
is not a block@NotNull FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull BlockData data) throws IllegalArgumentException
FallingBlock
entity at the given Location
of
the specified Material
. The material dictates what is falling.
When the FallingBlock hits the ground, it will place that block.
The Material must be a block type, check with material.isBlock()
. The Material may not be air.
location
- The Location
to spawn the FallingBlockdata
- The block dataFallingBlock
instanceIllegalArgumentException
- if Location
or BlockData
are null@Deprecated @NotNull FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull Material material, byte data) throws IllegalArgumentException
FallingBlock
entity at the given Location
of the
specified Material
. The material dictates what is falling.
When the FallingBlock hits the ground, it will place that block.
The Material must be a block type, check with material.isBlock()
. The Material may not be air.
location
- The Location
to spawn the FallingBlockmaterial
- The block Material
typedata
- The block dataFallingBlock
instanceIllegalArgumentException
- if Location
or Material
are null or Material
is not a blockvoid playEffect(@NotNull Location location, @NotNull Effect effect, int data)
void playEffect(@NotNull Location location, @NotNull Effect effect, int data, int radius)
<T> void playEffect(@NotNull Location location, @NotNull Effect effect, @Nullable T data)
<T> void playEffect(@NotNull Location location, @NotNull Effect effect, @Nullable T data, int radius)
@NotNull ChunkSnapshot getEmptyChunkSnapshot(int x, int z, boolean includeBiome, boolean includeBiomeTemp)
x
- - chunk x coordinatez
- - chunk z coordinateincludeBiome
- - if true, snapshot includes per-coordinate biome
typeincludeBiomeTemp
- - if true, snapshot includes per-coordinate
raw biome temperaturevoid setSpawnFlags(boolean allowMonsters, boolean allowAnimals)
allowMonsters
- - if true, monsters are allowed to spawn in this
world.allowAnimals
- - if true, animals are allowed to spawn in this
world.boolean getAllowAnimals()
boolean getAllowMonsters()
@NotNull Biome getBiome(int x, int z)
x
- X coordinate of the blockz
- Z coordinate of the blockvoid setBiome(int x, int z, @NotNull Biome bio)
x
- X coordinate of the blockz
- Z coordinate of the blockbio
- new Biome type for this blockdouble getTemperature(int x, int z)
It is safe to run this method when the block does not exist, it will not create the block.
This method will return the raw temperature without adjusting for block height effects.
x
- X coordinate of the blockz
- Z coordinate of the blockdouble getHumidity(int x, int z)
It is safe to run this method when the block does not exist, it will not create the block.
x
- X coordinate of the blockz
- Z coordinate of the blockint getMaxHeight()
If the max height is 100, there are only blocks from y=0 to y=99.
int getSeaLevel()
This is often half of getMaxHeight()
boolean getKeepSpawnInMemory()
void setKeepSpawnInMemory(boolean keepLoaded)
keepLoaded
- if true then the world's spawn area will be kept
loaded into memory.boolean isAutoSave()
void setAutoSave(boolean value)
value
- true if the world should automatically save, otherwise
falsevoid setDifficulty(@NotNull Difficulty difficulty)
difficulty
- the new difficulty you want to set the world to@NotNull Difficulty getDifficulty()
@NotNull File getWorldFolder()
@Nullable WorldType getWorldType()
boolean canGenerateStructures()
long getTicksPerAnimalSpawns()
This value determines how many ticks there are between attempts to spawn animals.
Example Usage:
Note:
If set to 0, animal spawning will be disabled for this world. We
recommend using setSpawnFlags(boolean, boolean)
to control
this instead.
Minecraft default: 400.
void setTicksPerAnimalSpawns(int ticksPerAnimalSpawns)
This value determines how many ticks there are between attempts to spawn animals.
Example Usage:
Note:
If set to 0, animal spawning will be disabled for this world. We
recommend using setSpawnFlags(boolean, boolean)
to control
this instead.
Minecraft default: 400.
ticksPerAnimalSpawns
- the ticks per animal spawns value you want
to set the world tolong getTicksPerMonsterSpawns()
This value determines how many ticks there are between attempts to spawn monsters.
Example Usage:
Note:
If set to 0, monsters spawning will be disabled for this world. We
recommend using setSpawnFlags(boolean, boolean)
to control
this instead.
Minecraft default: 1.
void setTicksPerMonsterSpawns(int ticksPerMonsterSpawns)
This value determines how many ticks there are between attempts to spawn monsters.
Example Usage:
Note:
If set to 0, monsters spawning will be disabled for this world. We
recommend using setSpawnFlags(boolean, boolean)
to control
this instead.
Minecraft default: 1.
ticksPerMonsterSpawns
- the ticks per monster spawns value you
want to set the world toint getMonsterSpawnLimit()
void setMonsterSpawnLimit(int limit)
Note: If set to a negative number the world will use the server-wide spawn limit instead.
limit
- the new mob limitint getAnimalSpawnLimit()
void setAnimalSpawnLimit(int limit)
Note: If set to a negative number the world will use the server-wide spawn limit instead.
limit
- the new mob limitint getWaterAnimalSpawnLimit()
void setWaterAnimalSpawnLimit(int limit)
Note: If set to a negative number the world will use the server-wide spawn limit instead.
limit
- the new mob limitint getAmbientSpawnLimit()
void setAmbientSpawnLimit(int limit)
Note: If set to a negative number the world will use the server-wide spawn limit instead.
limit
- the new mob limitvoid playSound(@NotNull Location location, @NotNull Sound sound, float volume, float pitch)
This function will fail silently if Location or Sound are null.
location
- The location to play the soundsound
- The sound to playvolume
- The volume of the soundpitch
- The pitch of the soundvoid playSound(@NotNull Location location, @NotNull String sound, float volume, float pitch)
This function will fail silently if Location or Sound are null. No sound will be heard by the players if their clients do not have the respective sound for the value passed.
location
- the location to play the soundsound
- the internal sound name to playvolume
- the volume of the soundpitch
- the pitch of the soundvoid playSound(@NotNull Location location, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch)
This function will fail silently if Location or Sound are null.
location
- The location to play the soundsound
- The sound to playcategory
- the category of the soundvolume
- The volume of the soundpitch
- The pitch of the soundvoid playSound(@NotNull Location location, @NotNull String sound, @NotNull SoundCategory category, float volume, float pitch)
This function will fail silently if Location or Sound are null. No sound will be heard by the players if their clients do not have the respective sound for the value passed.
location
- the location to play the soundsound
- the internal sound name to playcategory
- the category of the soundvolume
- the volume of the soundpitch
- the pitch of the sound@NotNull String[] getGameRules()
GameRule
s.GameRule
names.@Deprecated @Contract("null -> null; !null -> !null") @Nullable String getGameRuleValue(@Nullable String rule)
getGameRuleValue(GameRule)
insteadWill return null if rule passed is null
rule
- Rule to look up value of@Deprecated boolean setGameRuleValue(@NotNull String rule, @NotNull String value)
setGameRule(GameRule, Object)
instead.The rule may attempt to validate the value passed, will return true if value was set.
If rule is null, the function will return false.
rule
- Rule to setvalue
- Value to set rule toboolean isGameRule(@NotNull String rule)
rule
- Rule to check@Nullable <T> T getGameRuleValue(@NotNull GameRule<T> rule)
GameRule
.T
- the GameRule's typerule
- the GameRule to check@Nullable <T> T getGameRuleDefault(@NotNull GameRule<T> rule)
GameRule
. This value is not
guaranteed to match the current value.T
- the type of GameRulerule
- the rule to return a default value for<T> boolean setGameRule(@NotNull GameRule<T> rule, @NotNull T newValue)
GameRule
's new value.T
- the value type of the GameRulerule
- the GameRule to updatenewValue
- the new value@NotNull WorldBorder getWorldBorder()
void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count)
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesvoid spawnParticle(@NotNull Particle particle, double x, double y, double z, int count)
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particles<T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesdata
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
<T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesdata
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ)
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisvoid spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ)
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axis<T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisdata
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
<T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisdata
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra)
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra)
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)<T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)data
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
<T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)data
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
<T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data, boolean force)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnlocation
- the location to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)data
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
force
- whether to send the particle to players within an extended
range and encourage their client to render it regardless of
settings<T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data, boolean force)
T
- type of particle data (see Particle.getDataType()
particle
- the particle to spawnx
- the position on the x axis to spawn aty
- the position on the y axis to spawn atz
- the position on the z axis to spawn atcount
- the number of particlesoffsetX
- the maximum random offset on the X axisoffsetY
- the maximum random offset on the Y axisoffsetZ
- the maximum random offset on the Z axisextra
- the extra data for this particle, depends on the
particle used (normally speed)data
- the data to use for the particle or null,
the type of this depends on Particle.getDataType()
force
- whether to send the particle to players within an extended
range and encourage their client to render it regardless of
settings@Nullable Location locateNearestStructure(@NotNull Location origin, @NotNull StructureType structureType, int radius, boolean findUnexplored)
StructureType
.
Finding unexplored structures can, and will, block if the world is
looking in chunks that gave not generated yet. This can lead to the world
temporarily freezing while locating an unexplored structure.
The radius
is not a rigid square radius. Each structure may alter
how many chunks to check for each iteration. Do not assume that only a
radius x radius chunk area will be checked. For example,
StructureType.WOODLAND_MANSION
can potentially check up to 20,000
blocks away (or more) regardless of the radius used.
This will not load or generate chunks. This can also lead to instances where the server can hang if you are only looking for unexplored structures. This is because it will keep looking further and further out in order to find the structure.
origin
- where to start looking for a structurestructureType
- the type of structure to findradius
- the radius, in chunks, around which to searchfindUnexplored
- true to only find unexplored structuresLocation
, or null if no structure of the
specified type exists.@NotNull World.Spigot spigot()
Copyright © 2019. All rights reserved.