Interface DragonBattle


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

    • getEnderDragon

      @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 BossBar getBossBar()
      Get the boss bar to be displayed for this dragon battle.
      Returns:
      the boss bar
    • getEndPortalLocation

      @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 end portal blocks should be generated
      Returns:
      true if generated, false if already present
    • hasBeenPreviouslyKilled

      boolean hasBeenPreviouslyKilled()
      Check whether the first dragon has been killed already.
      Returns:
      true if killed before, false otherwise
    • setPreviouslyKilled

      void setPreviouslyKilled(boolean previouslyKilled)
      Sets whether the first dragon has been killed already.
      If the dragon has not previously been killed, a portal will be generated when it is finally killed.
      Parameters:
      previouslyKilled - true if the dragon has been killed before, false otherwise
    • initiateRespawn

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

      boolean initiateRespawn(@Nullable Collection<EnderCrystal> enderCrystals)
      Try to initiate a respawn sequence to summon the dragon.
      Parameters:
      enderCrystals - the EnderCrystals to use in the respawn, or a null or empty list to render the respawn sequence uncancellable. null entries or crystals that do not reside in the same world as this dragon battle will be ignored.
      Returns:
      true if the respawn was initiated, false otherwise.
    • getRespawnPhase

      @NotNull DragonBattle.RespawnPhase getRespawnPhase()
      Get this battle's current respawn phase.
      Returns:
      the current respawn phase.
    • setRespawnPhase

      boolean setRespawnPhase(@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:
    • resetCrystals

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