Package org.bukkit.block

# Interface CreatureSpawner

All Superinterfaces:
  `BlockState`, `Metadatable`, `PersistentDataHolder`, `TileState`

public interface CreatureSpawner extends TileState
Represents a captured state of a creature spawner.

## Method Summary

Modifier and Type
Method
Description
`@NotNull String`
`getCreatureTypeName()`
Deprecated.
magic value, use `getSpawnedType()`.
`int`
`getDelay()`
Get the spawner's delay.
`int`
`getMaxNearbyEntities()`
Set the new maximum amount of similar entities that are allowed to be within spawning range of this spawner.
`int`
`getMaxSpawnDelay()`
The maximum spawn delay amount (in ticks).
`int`
`getMinSpawnDelay()`
The minimum spawn delay amount (in ticks).
`int`
`getRequiredPlayerRange()`
Get the maximum distance(squared) a player can be in order for this spawner to be active.
`int`
`getSpawnCount()`
Get how many mobs attempt to spawn.
`@NotNull EntityType`
`getSpawnedType()`
Get the spawner's creature type.
`int`
`getSpawnRange()`
Get the radius around which the spawner will attempt to spawn mobs in.
`boolean`
`isActivated()`
Check if spawner is activated (a player is close enough)
`void`
`resetTimer()`
Resets the spawn delay timer within the min/max range
`void`
`setCreatureTypeByName(@NotNull String creatureType)`
Deprecated.
magic value, use `setSpawnedType(org.bukkit.entity.EntityType)`.
`void`
`setDelay(int delay)`
Set the spawner's delay.
`void`
`setMaxNearbyEntities(int maxNearbyEntities)`
Set the maximum number of similar entities that are allowed to be within spawning range of this spawner.
`void`
`setMaxSpawnDelay(int delay)`
Set the maximum spawn delay amount (in ticks).
`void`
`setMinSpawnDelay(int delay)`
Set the minimum spawn delay amount (in ticks).
`void`
`setRequiredPlayerRange(int requiredPlayerRange)`
Set the maximum distance (squared) a player can be in order for this spawner to be active.
`void`
`setSpawnCount(int spawnCount)`
Set how many mobs attempt to spawn.
`void`
`setSpawnedItem(ItemStack itemStack)`
Sets the `EntityType` to `EntityType.DROPPED_ITEM` and sets the data to the given `ItemStack`.
`void`
`setSpawnedType(@NotNull EntityType creatureType)`
Set the spawner's creature type.
`void`
`setSpawnRange(int spawnRange)`
Set the new spawn range.

### Methods inherited from interface org.bukkit.block.BlockState

`getBlock, getBlockData, getChunk, getData, getLightLevel, getLocation, getLocation, getRawData, getType, getWorld, getX, getY, getZ, isCollidable, isPlaced, setBlockData, setData, setRawData, setType, update, update, update`

### Methods inherited from interface org.bukkit.metadata.Metadatable

`getMetadata, hasMetadata, removeMetadata, setMetadata`

### Methods inherited from interface org.bukkit.block.TileState

`getPersistentDataContainer, isSnapshot`

## Method Details

### getSpawnedType

@NotNull @NotNull EntityType getSpawnedType()
Get the spawner's creature type.

Returns:
  The creature type.

### setSpawnedType

void setSpawnedType(@NotNull @NotNull EntityType creatureType)
Set the spawner's creature type.

Parameters:
  `creatureType` - The creature type.

### setCreatureTypeByName

@Deprecated void setCreatureTypeByName(@NotNull @NotNull String creatureType)
Deprecated.
magic value, use `setSpawnedType(org.bukkit.entity.EntityType)`.
Set the spawner mob type.

Parameters:
  `creatureType` - The creature type's name.

### getCreatureTypeName

@Deprecated @NotNull @NotNull String getCreatureTypeName()
Deprecated.
magic value, use `getSpawnedType()`.
Get the spawner's creature type.

Returns:
  The creature type's name.

### getDelay

int getDelay()
Get the spawner's delay.
This is the delay, in ticks, until the spawner will spawn its next mob.

Returns:
  The delay.

### setDelay

void setDelay(int delay)
Set the spawner's delay.
If set to -1, the spawn delay will be reset to a random value between `getMinSpawnDelay()` and `getMaxSpawnDelay()`.

Parameters:
  `delay` - The delay.

### getMinSpawnDelay

int getMinSpawnDelay()
The minimum spawn delay amount (in ticks).
This value is used when the spawner resets its delay (for any reason). It will choose a random number between `getMinSpawnDelay()` and `getMaxSpawnDelay()` for its next `getDelay()`. Default value is 200 ticks.

Returns:
  the minimum spawn delay amount

### setMinSpawnDelay

void setMinSpawnDelay(int delay)
Set the minimum spawn delay amount (in ticks).

Parameters:
  `delay` - the minimum spawn delay amount
See Also:
  - `getMinSpawnDelay()`

### getMaxSpawnDelay

int getMaxSpawnDelay()
The maximum spawn delay amount (in ticks).
This value is used when the spawner resets its delay (for any reason). It will choose a random number between `getMinSpawnDelay()` and `getMaxSpawnDelay()` for its next `getDelay()`.
This value must be greater than 0 and less than or equal to `getMaxSpawnDelay()`. Default value is 800 ticks.

Returns:
  the maximum spawn delay amount

### setMaxSpawnDelay

void setMaxSpawnDelay(int delay)
Set the maximum spawn delay amount (in ticks).
This value must be greater than 0, as well as greater than or equal to `getMinSpawnDelay()`

Parameters:
  `delay` - the new maximum spawn delay amount
See Also:
  - `getMaxSpawnDelay()`

### getSpawnCount

int getSpawnCount()
Get how many mobs attempt to spawn.
Default value is 4.

Returns:
  the current spawn count

### setSpawnCount

void setSpawnCount(int spawnCount)
Set how many mobs attempt to spawn.

Parameters:
  `spawnCount` - the new spawn count

### getMaxNearbyEntities

int getMaxNearbyEntities()
Set the new maximum amount of similar entities that are allowed to be within spawning range of this spawner.
If more than the maximum number of entities are within range, the spawner will not spawn and try again with a new `getDelay()`.
Default value is 16.

Returns:
  the maximum number of nearby, similar, entities

### setMaxNearbyEntities

void setMaxNearbyEntities(int maxNearbyEntities)
Set the maximum number of similar entities that are allowed to be within spawning range of this spawner.
Similar entities are entities that are of the same `EntityType`

Parameters:
  `maxNearbyEntities` - the maximum number of nearby, similar, entities

### getRequiredPlayerRange

int getRequiredPlayerRange()
Get the maximum distance(squared) a player can be in order for this spawner to be active.
If this value is less than or equal to 0, this spawner is always active (given that there are players online).
Default value is 16.

Returns:
  the maximum distance(squared) a player can be in order for this spawner to be active.

### setRequiredPlayerRange

void setRequiredPlayerRange(int requiredPlayerRange)
Set the maximum distance (squared) a player can be in order for this spawner to be active.
Setting this value to less than or equal to 0 will make this spawner always active (given that there are players online).

Parameters:
  `requiredPlayerRange` - the maximum distance (squared) a player can be in order for this spawner to be active.

### getSpawnRange

int getSpawnRange()
Get the radius around which the spawner will attempt to spawn mobs in.
This area is square, includes the block the spawner is in, and is centered on the spawner's x,z coordinates - not the spawner itself.
It is 2 blocks high, centered on the spawner's y-coordinate (its bottom); thus allowing mobs to spawn as high as its top surface and as low as 1 block below its bottom surface.
Default value is 4.

Returns:
  the spawn range

### setSpawnRange

void setSpawnRange(int spawnRange)
Set the new spawn range.

Parameters:
  `spawnRange` - the new spawn range
See Also:
  - `getSpawnRange()`

### isActivated

boolean isActivated()
Check if spawner is activated (a player is close enough)

Returns:
  True if a player is close enough to activate it

### resetTimer

void resetTimer()
Resets the spawn delay timer within the min/max range

### setSpawnedItem

void setSpawnedItem(@NotNull ItemStack itemStack)
Sets the `EntityType` to `EntityType.DROPPED_ITEM` and sets the data to the given `ItemStack`.

`setSpawnCount(int)` does not dictate the amount of items in the stack spawned, but rather how many stacks should be spawned.

Parameters:
  `itemStack` - The item to spawn. Must not `be air`.
See Also:
  - `setSpawnedType(EntityType)`