From de47ccf15924a7d7e2ae87a6f4526e3a53f88be7 Mon Sep 17 00:00:00 2001 From: DaRacci Date: Sun, 25 Sep 2022 22:25:57 +1000 Subject: [PATCH] fix: boss transformations Closes: https://github.com/Auxilor/EcoBosses/issues/36 --- .../lifecycle/CompatibilityListeners.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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 } }