From ed0c7ae2387a635d55098e7445aec25f4735c50e Mon Sep 17 00:00:00 2001 From: Auxilor Date: Tue, 30 May 2023 19:46:22 +0100 Subject: [PATCH] Added location_to_boss mutator --- .../com/willfp/ecobosses/EcoBossesPlugin.kt | 3 +++ .../libreforge/MutatorLocationToBoss.kt | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/libreforge/MutatorLocationToBoss.kt diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/EcoBossesPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/EcoBossesPlugin.kt index 18ce655..37648d6 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/EcoBossesPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/EcoBossesPlugin.kt @@ -13,6 +13,7 @@ import com.willfp.ecobosses.defence.MountHandler import com.willfp.ecobosses.defence.PickupHandler import com.willfp.ecobosses.integrations.levelledmobs.IntegrationLevelledMobs import com.willfp.ecobosses.libreforge.EffectBossDropChanceMultiplier +import com.willfp.ecobosses.libreforge.MutatorLocationToBoss import com.willfp.ecobosses.libreforge.TriggerKillBoss import com.willfp.ecobosses.libreforge.TriggerSpawnBoss import com.willfp.ecobosses.lifecycle.CompatibilityListeners @@ -27,6 +28,7 @@ import com.willfp.ecobosses.util.TopDamagerListener import com.willfp.libreforge.effects.Effects import com.willfp.libreforge.loader.LibreforgePlugin import com.willfp.libreforge.loader.configs.ConfigCategory +import com.willfp.libreforge.mutators.Mutators import com.willfp.libreforge.registerHolderProvider import com.willfp.libreforge.triggers.Triggers import org.bukkit.event.Listener @@ -46,6 +48,7 @@ class EcoBossesPlugin : LibreforgePlugin() { Effects.register(EffectBossDropChanceMultiplier) Triggers.register(TriggerKillBoss) Triggers.register(TriggerSpawnBoss) + Mutators.register(MutatorLocationToBoss) } override fun handleEnable() { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/libreforge/MutatorLocationToBoss.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/libreforge/MutatorLocationToBoss.kt new file mode 100644 index 0000000..ea6c306 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecobosses/libreforge/MutatorLocationToBoss.kt @@ -0,0 +1,24 @@ +package com.willfp.ecobosses.libreforge + +import com.willfp.eco.core.config.interfaces.Config +import com.willfp.ecobosses.events.BossSpawnEvent +import com.willfp.libreforge.NoCompileData +import com.willfp.libreforge.getProvider +import com.willfp.libreforge.mutators.Mutator +import com.willfp.libreforge.triggers.Trigger +import com.willfp.libreforge.triggers.TriggerData +import com.willfp.libreforge.triggers.TriggerParameter +import org.bukkit.entity.Entity +import org.bukkit.entity.LivingEntity +import org.bukkit.event.EventHandler + +object MutatorLocationToBoss : Mutator("location_to_boss") { + override fun mutate(data: TriggerData, config: Config, compileData: NoCompileData): TriggerData { + val entity = data.holder.getProvider() ?: return data + val location = entity.location + + return data.copy( + location = location + ) + } +}