diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/lifecycle/CompatibilityListeners.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/lifecycle/CompatibilityListeners.kt index b69e2d9..9bf997f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/lifecycle/CompatibilityListeners.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/lifecycle/CompatibilityListeners.kt @@ -1,16 +1,27 @@ package com.willfp.ecobosses.lifecycle import com.willfp.ecobosses.bosses.Bosses +import org.bukkit.entity.Entity import org.bukkit.entity.LivingEntity import org.bukkit.event.EventHandler import org.bukkit.event.Listener +import org.bukkit.event.entity.EntityTransformEvent import org.bukkit.event.entity.SlimeSplitEvent class CompatibilityListeners : Listener { @EventHandler fun handle(event: SlimeSplitEvent) { - if (Bosses[event.entity as? LivingEntity ?: return] != null) { - event.isCancelled = true - } + if (!this.isBoss(event.entity)) return + event.isCancelled = true + } + + @EventHandler + fun handle(event: EntityTransformEvent) { + if (!this.isBoss(event.entity)) return + event.isCancelled = true + } + + private fun isBoss(entity: Entity): Boolean { + return Bosses[entity as? LivingEntity ?: return false] != null } }