1
0
Fork 0
mirror of https://github.com/PaperMC/Paper.git synced 2025-02-18 11:22:15 +01:00

: Add more lightning API

By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
Bukkit/Spigot 2023-10-03 07:32:53 +11:00
parent 21f10876d1
commit 570855998d

View file

@ -1,5 +1,9 @@
package org.bukkit.entity;
import org.bukkit.GameEvent;
import org.bukkit.enchantments.Enchantment;
import org.jetbrains.annotations.Nullable;
/**
* Represents an instance of a lightning strike. May or may not do damage.
*/
@ -12,4 +16,70 @@ public interface LightningStrike extends Entity {
*/
public boolean isEffect();
/**
* Get the amount of flashes that will occur before the lightning is
* removed. By default this value is between 1 and 3.
*
* @return the flashes
*/
public int getFlashes();
/**
* 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.
*
* @param flashes the flashes
*/
public void setFlashes(int flashes);
/**
* Get the amount of ticks this lightning strike will inflict damage
* upon its hit entities.
* <p>
* When life ticks are negative, there is a random chance that another
* flash will be initiated and life ticks reset to 1.
*
* @return the life ticks
*/
public int getLifeTicks();
/**
* Get the amount of ticks this lightning strike will inflict damage
* upon its hit entities.
* <p>
* 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:
* <ul>
* <li>Impact sound effects will be played
* <li>Fire will be spawned (dependent on difficulty)
* <li>Lightning rods will be powered (if hit)
* <li>Copper will be stripped (if hit)
* <li>{@link GameEvent#LIGHTNING_STRIKE} will be dispatched
* </ul>
*
* @param ticks the life ticks
*/
public void setLifeTicks(int ticks);
/**
* Get the {@link Player} that caused this lightning to strike. This
* will occur naturally if a trident enchanted with
* {@link Enchantment#CHANNELING Channeling} were thrown at an entity
* during a storm.
*
* @return the player
*/
@Nullable
public Player getCausingPlayer();
/**
* Set the {@link Player} that caused this lightning to strike.
*
* @param player the player
*/
public void setCausingPlayer(@Nullable Player player);
}