9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-20 07:29:21 +00:00

Fixed lifecycles

This commit is contained in:
Auxilor
2022-02-06 13:29:40 +00:00
parent f6f9fb3c1d
commit b1ad28eee4
4 changed files with 16 additions and 10 deletions

View File

@@ -13,8 +13,6 @@ abstract class BossDeathEvent(
return HANDLERS
}
abstract val lifecycle: BossLifecycle
companion object {
private val HANDLERS = HandlerList()

View File

@@ -11,8 +11,6 @@ class BossDespawnEvent(
return HANDLERS
}
override val lifecycle: BossLifecycle = BossLifecycle.DESPAWN
companion object {
private val HANDLERS = HandlerList()

View File

@@ -15,8 +15,6 @@ class BossKillEvent(
return HANDLERS
}
override val lifecycle: BossLifecycle = BossLifecycle.KILL
companion object {
private val HANDLERS = HandlerList()

View File

@@ -2,6 +2,8 @@ package com.willfp.ecobosses.lifecycle
import com.willfp.ecobosses.bosses.Bosses
import com.willfp.ecobosses.events.BossDeathEvent
import com.willfp.ecobosses.events.BossDespawnEvent
import com.willfp.ecobosses.events.BossKillEvent
import com.willfp.ecobosses.events.BossSpawnEvent
import org.bukkit.entity.LivingEntity
import org.bukkit.event.EventHandler
@@ -14,7 +16,7 @@ class LifecycleHandlers : Listener {
ignoreCancelled = true,
priority = EventPriority.MONITOR
)
fun onInjure(event: EntityDamageEvent) {
fun handle(event: EntityDamageEvent) {
val entity = event.entity as? LivingEntity ?: return
val boss = Bosses[entity] ?: return
@@ -25,17 +27,27 @@ class LifecycleHandlers : Listener {
ignoreCancelled = true,
priority = EventPriority.MONITOR
)
fun onInjure(event: BossDeathEvent) {
fun handle(event: BossKillEvent) {
val entity = event.boss.entity ?: return
event.boss.boss.handleLifecycle(event.lifecycle, entity.location, entity)
event.boss.boss.handleLifecycle(BossLifecycle.KILL, entity.location, entity)
}
@EventHandler(
ignoreCancelled = true,
priority = EventPriority.MONITOR
)
fun onInjure(event: BossSpawnEvent) {
fun handle(event: BossDespawnEvent) {
val entity = event.boss.entity ?: return
event.boss.boss.handleLifecycle(BossLifecycle.DESPAWN, entity.location, entity)
}
@EventHandler(
ignoreCancelled = true,
priority = EventPriority.MONITOR
)
fun handle(event: BossSpawnEvent) {
event.boss.handleLifecycle(BossLifecycle.SPAWN, event.location, null)
}
}