Added boolean silent param to LightningUtils#strike method to make a lightning with sound only played locally for nearest players

This commit is contained in:
_OfTeN_
2021-09-12 22:45:41 +03:00
parent 109347a601
commit 9da28a1dff

View File

@@ -2,6 +2,8 @@ package com.willfp.eco.util;
import lombok.experimental.UtilityClass;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.SoundCategory;
import org.bukkit.entity.LivingEntity;
import org.jetbrains.annotations.NotNull;
@@ -10,18 +12,32 @@ import org.jetbrains.annotations.NotNull;
*/
@UtilityClass
public class LightningUtils {
/**
* Strike lightning on player without fire.
*
* @param victim The entity to smite.
* @param damage The damage to deal.
* @param silent If the lightning sound should be played locally
*/
public void strike(@NotNull final LivingEntity victim,
final double damage) {
final double damage, boolean silent) {
Location loc = victim.getLocation();
victim.getWorld().strikeLightningEffect(loc);
if (silent) {
victim.getWorld().spigot().strikeLightningEffect(loc, true);
victim.getWorld().playSound(loc, Sound.ENTITY_LIGHTNING_BOLT_IMPACT, 1, 1);
}
else {
victim.getWorld().strikeLightningEffect(loc);
}
victim.damage(damage);
}
public void strike(@NotNull final LivingEntity victim,
final double damage) {
strike(victim, damage, false);
}
}