Skip to content

Commit d5fd4ec

Browse files
committed
Also prevent knockback, fixes DEV-107
1 parent e1b8cc7 commit d5fd4ec

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

src/main/java/de/erethon/aether/listener/EntityListener.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package de.erethon.aether.listener;
22

3+
import com.destroystokyo.paper.event.entity.EntityKnockbackByEntityEvent;
34
import de.erethon.aether.Aether;
45
import de.erethon.aether.creature.AetherBaseMob;
56
import de.erethon.papyrus.entities.CraftCustomMob;
67
import de.erethon.spellbook.api.SpellEffectAddEvent;
8+
import io.papermc.paper.event.entity.EntityKnockbackEvent;
79
import org.bukkit.Bukkit;
810
import org.bukkit.entity.LivingEntity;
911
import org.bukkit.entity.Player;
1012
import org.bukkit.event.EventHandler;
1113
import org.bukkit.event.Listener;
14+
import org.bukkit.event.entity.EntityDamageEvent;
1215

1316
public class EntityListener implements Listener {
1417

@@ -33,4 +36,22 @@ public void onEntityDeath(SpellEffectAddEvent event) {
3336
}
3437
}
3538

39+
@EventHandler
40+
public void onEntityDamage(EntityKnockbackEvent event) {
41+
if (event.getEntity() instanceof CraftCustomMob mob && mob.getHandle() instanceof AetherBaseMob aetherMob) {
42+
if (aetherMob.getData().isInvulnerable()) {
43+
event.setCancelled(true);
44+
}
45+
}
46+
}
47+
48+
@EventHandler
49+
public void onEntityDamage(EntityKnockbackByEntityEvent event) {
50+
if (event.getEntity() instanceof CraftCustomMob mob && mob.getHandle() instanceof AetherBaseMob aetherMob) {
51+
if (aetherMob.getData().isInvulnerableToPlayers() && event.getHitBy() instanceof Player) {
52+
event.setCancelled(true);
53+
}
54+
}
55+
}
56+
3657
}

0 commit comments

Comments
 (0)