|
1 | 1 | package de.erethon.aether.listener; |
2 | 2 |
|
3 | | -import com.destroystokyo.paper.event.entity.EntityAddToWorldEvent; |
4 | | -import com.destroystokyo.paper.event.entity.EntityPathfindEvent; |
5 | | -import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent; |
6 | 3 | import de.erethon.aether.Aether; |
7 | | -import de.erethon.aether.creature.ActiveCreatureManager; |
8 | | -import de.erethon.aether.creature.ActiveNPC; |
9 | | -import de.erethon.aether.creature.InstancedNPC; |
10 | | -import de.erethon.aether.events.CreatureDeathEvent; |
11 | | -import de.erethon.aether.events.InstancedCreatureDeathEvent; |
12 | | -import de.erethon.bedrock.chat.MessageUtil; |
13 | | -import io.papermc.paper.event.entity.EntityMoveEvent; |
14 | | -import net.minecraft.world.entity.LivingEntity; |
| 4 | +import de.erethon.aether.creature.AetherBaseMob; |
| 5 | +import de.erethon.papyrus.entities.CraftCustomMob; |
| 6 | +import de.erethon.spellbook.api.SpellEffectAddEvent; |
15 | 7 | import org.bukkit.Bukkit; |
16 | | -import org.bukkit.Sound; |
17 | | -import org.bukkit.SoundCategory; |
18 | | -import org.bukkit.craftbukkit.entity.CraftMob; |
19 | | -import org.bukkit.entity.Entity; |
20 | | -import org.bukkit.entity.EntityType; |
21 | | -import org.bukkit.entity.Item; |
22 | | -import org.bukkit.entity.Mob; |
| 8 | +import org.bukkit.entity.LivingEntity; |
23 | 9 | import org.bukkit.entity.Player; |
24 | 10 | import org.bukkit.event.EventHandler; |
25 | 11 | import org.bukkit.event.Listener; |
26 | | -import org.bukkit.event.entity.EntityDamageByEntityEvent; |
27 | | -import org.bukkit.event.entity.EntityDamageEvent; |
28 | | -import org.bukkit.event.entity.EntityDeathEvent; |
29 | | -import org.bukkit.event.entity.EntityShootBowEvent; |
30 | | -import org.bukkit.event.entity.EntityTargetEvent; |
31 | | -import org.bukkit.event.entity.EntityTransformEvent; |
32 | | -import org.bukkit.event.entity.PlayerDeathEvent; |
33 | | -import org.bukkit.event.player.PlayerJoinEvent; |
34 | | -import org.bukkit.inventory.ItemStack; |
35 | | -import org.bukkit.persistence.PersistentDataType; |
36 | 12 |
|
37 | 13 | public class EntityListener implements Listener { |
38 | 14 |
|
39 | 15 | Aether plugin = Aether.getInstance(); |
40 | | - ActiveCreatureManager creatures = plugin.getActiveCreatureManager(); |
| 16 | + |
| 17 | + public EntityListener(Aether plugin) { |
| 18 | + this.plugin = plugin; |
| 19 | + Bukkit.getPluginManager().registerEvents(this, plugin); |
| 20 | + } |
| 21 | + |
| 22 | + @EventHandler |
| 23 | + public void onEntityDeath(SpellEffectAddEvent event) { |
| 24 | + LivingEntity entity = (LivingEntity) event.getTarget(); |
| 25 | + if (entity instanceof CraftCustomMob mob && mob.getHandle() instanceof AetherBaseMob aetherMob) { |
| 26 | + if (aetherMob.getData().isInvulnerable()) { |
| 27 | + event.setCancelled(true); |
| 28 | + return; |
| 29 | + } |
| 30 | + if (aetherMob.getData().isInvulnerableToPlayers() && event.getEffect().getCaster() instanceof Player) { |
| 31 | + event.setCancelled(true);; |
| 32 | + } |
| 33 | + } |
| 34 | + } |
41 | 35 |
|
42 | 36 | } |
0 commit comments