mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-22 00:19:30 +00:00
Moved integration
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user