diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/handler/SpawnTotemHandler.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/handler/SpawnTotemHandler.kt index 96e7cc6..31599d3 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/handler/SpawnTotemHandler.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/handler/SpawnTotemHandler.kt @@ -3,6 +3,7 @@ package com.willfp.ecomobs.handler import com.willfp.ecomobs.mob.EcoMobs import com.willfp.ecomobs.mob.SpawnReason import com.willfp.ecomobs.mob.SpawnTotem +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.block.Block import org.bukkit.event.EventHandler @@ -38,7 +39,7 @@ class SpawnTotemHandler : Listener { if (!options.conditions.areMetAndTrigger( TriggerData( player = player - ).dispatch(player) + ).dispatch(player.toDispatcher()) ) ) { continue diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/MobEvent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/MobEvent.kt index 2f689cf..4e407ed 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/MobEvent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/MobEvent.kt @@ -15,13 +15,4 @@ abstract class MobEvent( override fun onRegister() { plugin.eventManager.registerListener(this) } - - /* - libreforge effects require a player to be passed in, so we just use an arbitrary player. - This means that if there are no players online, then certain events will not fire - but this - shouldn't cause much of an issue. - */ - protected fun getArbitraryPlayer(): Player? { - return Bukkit.getOnlinePlayers().firstOrNull() - } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDamagePlayer.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDamagePlayer.kt index e812cac..3772566 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDamagePlayer.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDamagePlayer.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.entity.Mob import org.bukkit.entity.Player @@ -23,6 +24,6 @@ object MobEventDamagePlayer : MobEvent("damage_player") { event = event ) - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(player.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDeath.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDeath.kt index 77cd938..d5d16d0 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDeath.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDeath.kt @@ -3,6 +3,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.event.EcoMobDeathEvent import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.Bukkit import org.bukkit.entity.Mob @@ -27,11 +28,9 @@ object MobEventDeath : MobEvent("death") { // Clear default drops event.drops.clear() - val player = getArbitraryPlayer() ?: return - Bukkit.getPluginManager().callEvent(EcoMobDeathEvent(living)) - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(bukkitMob.toDispatcher())) living.kill(null) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDespawn.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDespawn.kt index d816723..0f680cf 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDespawn.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventDespawn.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.event.EcoMobDespawnEvent import com.willfp.ecomobs.mob.event.MobEvent +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.event.EventHandler @@ -16,8 +17,6 @@ object MobEventDespawn: MobEvent("despawn") { event = event ) - val player = getArbitraryPlayer() ?: return - - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(living.entity.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventInteract.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventInteract.kt index 4f8bc00..7683d62 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventInteract.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventInteract.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.entity.Mob import org.bukkit.event.EventHandler @@ -22,6 +23,6 @@ object MobEventInteract: MobEvent("interact") { event = event ) - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(bukkitMob.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt index 3bf9d43..19ea603 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt @@ -5,6 +5,7 @@ import com.willfp.eco.util.tryAsPlayer import com.willfp.ecomobs.event.EcoMobKillEvent import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.Bukkit import org.bukkit.entity.Mob @@ -31,7 +32,7 @@ object MobEventKill : MobEvent("kill") { Bukkit.getPluginManager().callEvent(EcoMobKillEvent(living, player)) - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(player.toDispatcher())) living.kill(player) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKillPlayer.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKillPlayer.kt index 3eede24..f764dd1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKillPlayer.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKillPlayer.kt @@ -3,6 +3,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.eco.core.events.EntityDeathByEntityEvent import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.entity.Mob import org.bukkit.entity.Player @@ -23,6 +24,6 @@ object MobEventKillPlayer : MobEvent("kill_player") { event = event ) - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(player.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventMeleeAttack.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventMeleeAttack.kt index 5788777..5fd2b7a 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventMeleeAttack.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventMeleeAttack.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.entity.Mob import org.bukkit.entity.Player @@ -14,16 +15,16 @@ object MobEventMeleeAttack : MobEvent("melee_attack") { val bukkitMob = event.entity as? Mob ?: return val ecoMob = bukkitMob.ecoMob ?: return val living = ecoMob.getLivingMob(bukkitMob) ?: return - val player = event.damager as? Player ?: return + val damager = event.damager val data = TriggerData( - player = player, + player = damager as? Player, victim = bukkitMob, location = bukkitMob.location, event = event ) - living.handleEvent(this, data.dispatch(player)) - living.handleEvent(MobEventAnyAttack, data.dispatch(player)) + living.handleEvent(this, data.dispatch(damager.toDispatcher())) + living.handleEvent(MobEventAnyAttack, data.dispatch(damager.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventRangedAttack.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventRangedAttack.kt index 50481d8..d6ff072 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventRangedAttack.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventRangedAttack.kt @@ -3,6 +3,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.eco.util.tryAsPlayer import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.entity.Mob import org.bukkit.entity.Player @@ -30,7 +31,7 @@ object MobEventRangedAttack : MobEvent("ranged_attack") { event = event ) - living.handleEvent(this, data.dispatch(player)) - living.handleEvent(MobEventAnyAttack, data.dispatch(player)) + living.handleEvent(this, data.dispatch(player.toDispatcher())) + living.handleEvent(MobEventAnyAttack, data.dispatch(player.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventSpawn.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventSpawn.kt index 3c0f73f..70f0f47 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventSpawn.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventSpawn.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.event.EcoMobSpawnEvent import com.willfp.ecomobs.mob.event.MobEvent +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.event.EventHandler @@ -16,8 +17,6 @@ object MobEventSpawn: MobEvent("spawn") { event = event ) - val player = getArbitraryPlayer() ?: return - - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(living.entity.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventTakeDamage.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventTakeDamage.kt index 066cccc..ab9fcb4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventTakeDamage.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventTakeDamage.kt @@ -2,6 +2,7 @@ package com.willfp.ecomobs.mob.event.impl import com.willfp.ecomobs.mob.event.MobEvent import com.willfp.ecomobs.mob.impl.ecoMob +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.Bukkit import org.bukkit.entity.Mob @@ -23,8 +24,6 @@ object MobEventTakeDamage : MobEvent("take_damage") { event = event ) - val player = Bukkit.getOnlinePlayers().firstOrNull() ?: return - - living.handleEvent(this, data.dispatch(player)) + living.handleEvent(this, data.dispatch(bukkitMob.toDispatcher())) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/options/SpawnEgg.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/options/SpawnEgg.kt index 3093ca4..114489c 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/options/SpawnEgg.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/options/SpawnEgg.kt @@ -11,6 +11,7 @@ import com.willfp.ecomobs.mob.EcoMobs import com.willfp.ecomobs.mob.LivingMob import com.willfp.ecomobs.mob.SpawnReason import com.willfp.libreforge.conditions.ConditionList +import com.willfp.libreforge.toDispatcher import com.willfp.libreforge.triggers.TriggerData import org.bukkit.Location import org.bukkit.entity.Player @@ -27,7 +28,7 @@ class SpawnEgg internal constructor( val canSpawn = conditions.areMetAndTrigger( TriggerData( player = player - ).dispatch(player) + ).dispatch(player.toDispatcher()) ) if (!canSpawn) { diff --git a/gradle.properties b/gradle.properties index bb5ebf6..9bb2378 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ kotlin.code.style=official -libreforge-version=4.42.0 +libreforge-version=4.44.0 version=10.0.0-b1