Interface LightningStrike

All Superinterfaces:
Audience, CommandSender, Entity, HoverEventSource<HoverEvent.ShowEntity>, Metadatable, Nameable, Permissible, PersistentDataHolder, PersistentDataViewHolder, 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
    • getFlashes

      @Deprecated int getFlashes()
      Deprecated.
      Get the amount of flashes that will occur before the lightning is removed. By default this value is between 1 and 3.
      Returns:
      the flashes
    • setFlashes

      @Deprecated void setFlashes(int flashes)
      Deprecated.
      Set the amount of flashes that will occur before the lightning is removed. One flash will occur after this lightning strike's life has reduced below 0.
      Parameters:
      flashes - the flashes
    • getLifeTicks

      int getLifeTicks()
      Get the amount of ticks this lightning strike will inflict damage upon its hit entities.

      When life ticks are negative, there is a random chance that another flash will be initiated and life ticks reset to 1.

      Returns:
      the life ticks
    • setLifeTicks

      void setLifeTicks(int ticks)
      Get the amount of ticks this lightning strike will inflict damage upon its hit entities.

      When life ticks are negative, there is a random chance that another flash will be initiated and life ticks reset to 1. Additionally, if life ticks are set to 2 (the default value when a lightning strike has been spawned), a list of events will occur:

      • Impact sound effects will be played
      • Fire will be spawned (dependent on difficulty)
      • Lightning rods will be powered (if hit)
      • Copper will be stripped (if hit)
      • GameEvent.LIGHTNING_STRIKE will be dispatched
      Parameters:
      ticks - the life ticks
    • getCausingPlayer

      @Nullable @Nullable Player getCausingPlayer()
      Get the Player that caused this lightning to strike. This will occur naturally if a trident enchanted with Channeling were thrown at an entity during a storm.
      Returns:
      the player
    • setCausingPlayer

      void setCausingPlayer(@Nullable @Nullable Player player)
      Set the Player that caused this lightning to strike.
      Parameters:
      player - the player
    • spigot

      Deprecated.
      Unsupported api
      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:
    • 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
    • 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)