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

Moved integration

This commit is contained in:
Auxilor
2023-03-28 18:58:58 +01:00
parent 4e86750c7d
commit f0a2d32b95
5 changed files with 98 additions and 1 deletions

View File

@@ -12,6 +12,9 @@ import com.willfp.ecobosses.defence.ImmunitiesHandler
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.TriggerKillBoss
import com.willfp.ecobosses.libreforge.TriggerSpawnBoss
import com.willfp.ecobosses.lifecycle.CompatibilityListeners
import com.willfp.ecobosses.lifecycle.ConsoleLoggers
import com.willfp.ecobosses.lifecycle.DeathListeners
@@ -21,9 +24,11 @@ import com.willfp.ecobosses.spawn.SpawnEggHandler
import com.willfp.ecobosses.spawn.SpawnTotemHandler
import com.willfp.ecobosses.util.DiscoverRecipeListener
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.registerHolderProvider
import com.willfp.libreforge.triggers.Triggers
import org.bukkit.event.Listener
class EcoBossesPlugin : LibreforgePlugin() {
@@ -38,6 +43,10 @@ class EcoBossesPlugin : LibreforgePlugin() {
}
override fun handleEnable() {
Effects.register(EffectBossDropChanceMultiplier)
Triggers.register(TriggerKillBoss)
Triggers.register(TriggerSpawnBoss)
registerHolderProvider { it.bossHolders }
}

View File

@@ -0,0 +1,28 @@
package com.willfp.ecobosses.libreforge
import com.willfp.ecobosses.bosses.Bosses
import com.willfp.ecobosses.bosses.EcoBoss
import com.willfp.ecobosses.events.BossTryDropItemEvent
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
import org.bukkit.event.EventHandler
object EffectBossDropChanceMultiplier : MultiMultiplierEffect<EcoBoss>("boss_drop_chance_multiplier") {
override val key = "bosses"
override fun getElement(key: String): EcoBoss? {
return Bosses.getByID(key)
}
override fun getAllElements(): Collection<EcoBoss> {
return Bosses.values()
}
@EventHandler(ignoreCancelled = true)
fun handle(event: BossTryDropItemEvent) {
val player = event.player ?: return
val multiplier = getMultiplier(player, event.boss)
event.chance *= multiplier
}
}

View File

@@ -0,0 +1,32 @@
package com.willfp.ecobosses.libreforge
import com.willfp.ecobosses.events.BossKillEvent
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
import org.bukkit.attribute.Attribute
import org.bukkit.event.EventHandler
object TriggerKillBoss : Trigger("kill_boss") {
override val parameters = setOf(
TriggerParameter.PLAYER,
TriggerParameter.VICTIM,
TriggerParameter.LOCATION
)
@EventHandler(ignoreCancelled = true)
fun handle(event: BossKillEvent) {
val killer = event.killer ?: return
val entity = event.boss.entity ?: return
this.dispatch(
killer,
TriggerData(
player = killer,
victim = entity,
location = entity.location,
value = entity.getAttribute(Attribute.GENERIC_MAX_HEALTH)!!.value
)
)
}
}

View File

@@ -0,0 +1,28 @@
package com.willfp.ecobosses.libreforge
import com.willfp.ecobosses.events.BossSpawnEvent
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
import org.bukkit.event.EventHandler
object TriggerSpawnBoss : Trigger("spawn_boss") {
override val parameters = setOf(
TriggerParameter.PLAYER,
TriggerParameter.LOCATION
)
@EventHandler(ignoreCancelled = true)
fun handle(event: BossSpawnEvent) {
val player = event.spawner ?: return
val location = event.location
this.dispatch(
player,
TriggerData(
player = player,
location = location
)
)
}
}

View File

@@ -1,5 +1,5 @@
#libreforge-updater
#Tue Mar 28 17:21:38 BST 2023
#Tue Mar 28 18:28:32 BST 2023
kotlin.code.style=official
libreforge-version=4.0.0
version=9.0.0