Interface LightningStrike

All Superinterfaces:
Audience, CommandSender, Entity, HoverEventSource<HoverEvent.ShowEntity>, Metadatable, Nameable, Permissible, PersistentDataHolder, Pointered, ServerOperator, Sound.Emitter

public interface LightningStrike extends Entity
Represents an instance of a lightning strike. May or may not do damage.
  • Method Details

    • isEffect

      boolean isEffect()
      Returns whether the strike is an effect that does no damage.
      Returns:
      whether the strike is an effect
    • spigot

      Specified by:
      spigot in interface CommandSender
      Specified by:
      spigot in interface Entity
    • getFlashCount

      int getFlashCount()
      Returns the amount of flash iterations that will be done before the lightning dies.
      Returns:
      amount of flashes that will be shown before the lightning dies
      See Also:
      for how long the current flash will last
    • setFlashCount

      void setFlashCount(int flashes)
      Sets the amount of life iterations that will be done before the lightning dies. Default number of flashes on creation is between 1-3.
      Parameters:
      flashes - amount of iterations that will be done before the lightning dies, must to be a positive number
    • getLifeTicks

      int getLifeTicks()
      Returns the amount of ticks the current flash will do damage for. Starts with 2 by default, will damage while it is equal to or above 0, with the next flash beginning somewhere between 0 and -9.
      Returns:
      ticks the current flash will do damage for
    • setLifeTicks

      void setLifeTicks(int lifeTicks)
      Sets the amount of ticks the current flash will do damage/fire for. Default is 2 for each flash, on which the sound and effect will also be played.
      Parameters:
      lifeTicks - ticks the current flash will do damage for
    • getCausingEntity

      @Nullable @Nullable Entity getCausingEntity()
      Returns the potential entity that caused this lightning strike to spawn in the world.

      As of implementing this method, only Players are capable of causing a lightning strike, however as this might change in future minecraft releases, this method does not guarantee a player as the cause of a lightning. Consumers of this method should hence validate whether or not the entity is a player if they want to use player specific methods through an instanceOf check.

      A player is, as of implementing this method, responsible for a lightning, and will hence be returned here as a cause, if they channeled a Trident to summon it or were explicitly defined as the cause of this lightning through setCausingPlayer(Player).

      Returns:
      the entity that caused this lightning or null if the lightning was not caused by a entity (e.g. normal weather)
    • setCausingPlayer

      void setCausingPlayer(@Nullable @Nullable Player causingPlayer)
      Updates the player that caused this lightning to be summoned into the world. By default, players that channel their Trident will be the cause of the respective lightning.

      While the respective getter method getCausingEntity() does not guarantee a player as the cause of a lightning to stay as future proof as possible, as of implementing this method, players are the only entities that can cause a lightning strike and hence this setter is restricted to players.

      Parameters:
      causingPlayer - the player that should be the new cause of this lightning. null may be passed to indicate that no player is responsible for this lightning.