Package org.bukkit.boss

# Interface DragonBattle

public interface DragonBattle
Represents a dragon battle state for a world with an end environment.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`DragonBattle.RespawnPhase`
Represents a phase in the dragon respawn process.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`generateEndPortal(boolean withPortals)`
Generate the end portal.
`@NotNull BossBar`
`getBossBar()`
Get the boss bar to be displayed for this dragon battle.
`@Nullable EnderDragon`
`getEnderDragon()`
Get the `EnderDragon` active in this battle.
`@Nullable Location`
`getEndPortalLocation()`
Get the location of the end portal.
`@NotNull DragonBattle.RespawnPhase`
`getRespawnPhase()`
Get this battle's current respawn phase.
`boolean`
`hasBeenPreviouslyKilled()`
Check whether or not the first dragon has been killed already.
`void`
`initiateRespawn()`
Initiate a respawn sequence to summon the dragon as though a player has placed 4 end crystals on the portal.
`void`
`resetCrystals()`
Reset the crystals located on the obsidian pillars (remove their beam targets and invulnerability).
`boolean`
`setRespawnPhase(@NotNull DragonBattle.RespawnPhase phase)`
Set the dragon's respawn phase.

## Method Details

### getEnderDragon

@Nullable @Nullable EnderDragon getEnderDragon()
Get the `EnderDragon` active in this battle. Will return null if the dragon has been slain.

Returns:
  the ender dragon. null if dead

### getBossBar

@NotNull @NotNull BossBar getBossBar()
Get the boss bar to be displayed for this dragon battle.

Returns:
  the boss bar

### getEndPortalLocation

@Nullable @Nullable Location getEndPortalLocation()
Get the location of the end portal. This location will be at the center of the base (bottom) of the portal.

Returns:
  the end portal location or null if not generated

### generateEndPortal

boolean generateEndPortal(boolean withPortals)
Generate the end portal.

Parameters:
  `withPortals` - whether or not end portal blocks should be generated
Returns:
  true if generated, false if already present

### hasBeenPreviouslyKilled

boolean hasBeenPreviouslyKilled()
Check whether or not the first dragon has been killed already.

Returns:
  true if killed before, false otherwise

### initiateRespawn

void initiateRespawn()
Initiate a respawn sequence to summon the dragon as though a player has placed 4 end crystals on the portal.

### getRespawnPhase

@NotNull @NotNull DragonBattle.RespawnPhase getRespawnPhase()
Get this battle's current respawn phase.

Returns:
  the current respawn phase.

### setRespawnPhase

boolean setRespawnPhase(@NotNull @NotNull DragonBattle.RespawnPhase phase)
Set the dragon's respawn phase. This method will is unsuccessful if a dragon respawn is not in progress.

Parameters:
  `phase` - the phase to set
Returns:
  true if successful, false otherwise
See Also:
  - `initiateRespawn()`

### resetCrystals

void resetCrystals()
Reset the crystals located on the obsidian pillars (remove their beam targets and invulnerability).