Skip to content

Commit e1b8cc7

Browse files
committed
Fix invulnerable mobs receiving spell effects
1 parent 659ef97 commit e1b8cc7

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ java {
2121
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
2222
}
2323

24-
val papyrusVersion = "1.21.9-R0.1-SNAPSHOT"
24+
val papyrusVersion = "1.21.10-R0.1-SNAPSHOT"
2525
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
2626

2727
dependencies {
Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,36 @@
11
package de.erethon.aether.listener;
22

3-
import com.destroystokyo.paper.event.entity.EntityAddToWorldEvent;
4-
import com.destroystokyo.paper.event.entity.EntityPathfindEvent;
5-
import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent;
63
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;
157
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;
239
import org.bukkit.entity.Player;
2410
import org.bukkit.event.EventHandler;
2511
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;
3612

3713
public class EntityListener implements Listener {
3814

3915
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+
}
4135

4236
}

0 commit comments

Comments
 (0)