feat: disable invuln for plugin damage + DamageUtil + DiamondTri/Barrage/Overhead nerf
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package me.sashegdev.blackknife;
|
||||
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
public class DamageUtil {
|
||||
public static void apply(Player attacker, LivingEntity victim, double amount) {
|
||||
victim.getPersistentDataContainer().set(SwoonHandler.MAGIC_DAMAGE, PersistentDataType.BYTE, (byte) 1);
|
||||
victim.damage(amount, attacker);
|
||||
victim.getPersistentDataContainer().remove(SwoonHandler.MAGIC_DAMAGE);
|
||||
victim.setNoDamageTicks(0);
|
||||
victim.setMaximumNoDamageTicks(10);
|
||||
BlackKnifePlugin.getInstance().getServer().getScheduler().runTaskLater(BlackKnifePlugin.getInstance(), () -> {
|
||||
if (victim.isValid() && victim.getMaximumNoDamageTicks() == 0) victim.setMaximumNoDamageTicks(10);
|
||||
}, 1L);
|
||||
}
|
||||
|
||||
public static void applyRaw(Player attacker, LivingEntity victim, double amount) {
|
||||
if (victim instanceof Player pl && pl.isBlocking()) amount /= 2.5;
|
||||
apply(attacker, victim, amount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user