From e444540bf3f3989d8be02c46e10a04fef39d8eac Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 19 Nov 2021 17:16:58 +0000 Subject: [PATCH 01/27] Fixed compile issuse --- .../willfp/libreforge/effects/effects/EffectCritMultiplier.kt | 4 ++-- .../libreforge/effects/effects/EffectDamageMultiplier.kt | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectCritMultiplier.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectCritMultiplier.kt index c55f1cc63..0e9ecd9ff 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectCritMultiplier.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectCritMultiplier.kt @@ -11,8 +11,8 @@ class EffectCritMultiplier : Effect( "crit_multiplier", supportsFilters = true, applicableTriggers = listOf( - Triggers.TRIDENT_HIT, - Triggers.ARROW_HIT, + Triggers.TRIDENT_ATTACK, + Triggers.BOW_ATTACK, Triggers.MELEE_ATTACK ) ) { diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt index 1394b8d03..a2440e946 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt @@ -16,8 +16,6 @@ class EffectDamageMultiplier : Effect( ) ) { override fun handle(data: TriggerData, config: JSONConfig) { - val player = data.player ?: return - val victim = data.victim ?: return val event = data.event as? WrappedDamageEvent ?: return event.damage *= config.getDouble("multiplier") From c13334cd006ca18284e585eeafc85928f046b4b0 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 19 Nov 2021 17:32:48 +0000 Subject: [PATCH 02/27] Updated triggers and backend changes --- eco-api/build.gradle | 2 +- .../com/willfp/libreforge/LibReforge.kt | 5 +- .../kotlin/com/willfp/libreforge/Watcher.kt | 232 ------------------ .../com/willfp/libreforge/effects/Effect.kt | 6 +- .../com/willfp/libreforge/effects/Effects.kt | 11 +- .../effects/effects/EffectDamageMultiplier.kt | 3 +- .../effects/EffectIncomingDamageMultiplier.kt | 30 --- .../willfp/libreforge/triggers/TriggerData.kt | 2 + .../willfp/libreforge/triggers/Triggers.kt | 11 +- .../triggers/triggers/TriggerBowAttack.kt | 3 +- .../triggers/triggers/TriggerFallDamage.kt | 37 +++ .../triggers/triggers/TriggerKill.kt | 2 +- .../triggers/triggers/TriggerMeleeAttack.kt | 3 +- .../triggers/triggers/TriggerProjectileHit.kt | 33 +++ .../triggers/triggers/TriggerTakeDamage.kt | 32 +++ .../triggers/triggers/TriggerTridentAttack.kt | 1 + .../triggers/triggers/WatcherTriggers.kt | 99 -------- lib/UltimateHelper.jar | Bin 1187533 -> 0 bytes lib/UltimateSkills.jar | Bin 484892 -> 0 bytes 19 files changed, 121 insertions(+), 391 deletions(-) delete mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/Watcher.kt delete mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectIncomingDamageMultiplier.kt create mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerFallDamage.kt create mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerProjectileHit.kt create mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTakeDamage.kt delete mode 100644 eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/WatcherTriggers.kt delete mode 100644 lib/UltimateHelper.jar delete mode 100644 lib/UltimateSkills.jar diff --git a/eco-api/build.gradle b/eco-api/build.gradle index 2a2c40050..476c3ef13 100644 --- a/eco-api/build.gradle +++ b/eco-api/build.gradle @@ -1,7 +1,7 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT' - compileOnly 'com.willfp:EcoSkills:1.4.0' + compileOnly 'com.willfp:EcoSkills:1.11.8' compileOnly 'com.github.Archy-X:AureliumSkills:Beta1.2.4' } diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/LibReforge.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/LibReforge.kt index df8bd0f1d..b763a11ab 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/LibReforge.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/LibReforge.kt @@ -11,11 +11,9 @@ import com.willfp.libreforge.integrations.ecoskills.EcoSkillsIntegration import com.willfp.libreforge.provider.Holder import com.willfp.libreforge.provider.HolderProvider import com.willfp.libreforge.triggers.Triggers -import com.willfp.libreforge.triggers.triggers.WatcherTriggers import org.apache.commons.lang.StringUtils import org.bukkit.entity.Player -import java.util.UUID -import java.util.WeakHashMap +import java.util.* private val holderProviders = mutableSetOf() private val previousStates: MutableMap> = WeakHashMap() @@ -41,7 +39,6 @@ object LibReforge { @JvmStatic fun enable(plugin: EcoPlugin) { - plugin.eventManager.registerListener(WatcherTriggers(plugin)) for (condition in Conditions.values()) { plugin.eventManager.registerListener(condition) } diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/Watcher.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/Watcher.kt deleted file mode 100644 index 3cd8cf58f..000000000 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/Watcher.kt +++ /dev/null @@ -1,232 +0,0 @@ -package com.willfp.libreforge - -import com.willfp.eco.core.config.interfaces.JSONConfig -import com.willfp.eco.core.events.EntityDeathByEntityEvent -import org.bukkit.block.Block -import org.bukkit.entity.Arrow -import org.bukkit.entity.LivingEntity -import org.bukkit.entity.Player -import org.bukkit.entity.Projectile -import org.bukkit.entity.Trident -import org.bukkit.event.block.BlockBreakEvent -import org.bukkit.event.entity.EntityDamageByEntityEvent -import org.bukkit.event.entity.EntityDamageEvent -import org.bukkit.event.entity.ProjectileHitEvent -import org.bukkit.event.entity.ProjectileLaunchEvent -import org.bukkit.event.player.PlayerItemDamageEvent -import org.bukkit.event.player.PlayerMoveEvent - -interface Watcher { - /** - * Called when a player breaks a block. - * - * @param player The player. - * @param block The block that was broken. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onBlockBreak( - player: Player, - block: Block, - event: BlockBreakEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity attacks another entity via any mean. - * - * @param attacker The attacker. - * @param victim The victim. - * @param event The event. - * @param config The effect config. - */ - fun onAnyDamage( - attacker: Player, - victim: LivingEntity, - event: EntityDamageByEntityEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity shoots another entity with an arrow. - * - * @param attacker The shooter. - * @param victim The victim. - * @param arrow The arrow entity. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onArrowDamage( - attacker: Player, - victim: LivingEntity, - arrow: Arrow, - event: EntityDamageByEntityEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity damages another entity with a trident throw. - * - * @param attacker The shooter. - * @param victim The victim. - * @param trident The trident entity. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onTridentDamage( - attacker: Player, - victim: LivingEntity, - trident: Trident, - event: EntityDamageByEntityEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when a player jumps. - * - * @param player The player. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onJump( - player: Player, - event: PlayerMoveEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity attacks another entity with a melee attack. - * - * @param attacker The attacker. - * @param victim The victim. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onMeleeAttack( - attacker: Player, - victim: LivingEntity, - event: EntityDamageByEntityEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity shoots a projectile. - * - * @param shooter The entity that shot the bow. - * @param projectile The projectile that was shot. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onProjectileLaunch( - shooter: Player, - projectile: Projectile, - event: ProjectileLaunchEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity takes fall damage. - * - * @param faller The entity that took the fall damage. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onFallDamage( - faller: Player, - event: EntityDamageEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when a projectile hits a block or entity. - * - * @param shooter The entity that shot the arrow. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onProjectileHit( - shooter: Player, - event: ProjectileHitEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity kills another entity. - * - * @param killer The killer. - * @param victim The victim. - * @param event The event. - * @param config The effect config. - */ - fun onKill( - killer: Player, - victim: LivingEntity, - event: EntityDeathByEntityEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity takes damage wearing armor. - * - * @param victim The entity that took damage. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onIncomingDamage( - victim: Player, - event: EntityDamageEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an entity throws a trident. - * - * @param shooter The entity that threw the trident. - * @param trident The trident that was thrown. - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onTridentLaunch( - shooter: Player, - trident: Trident, - event: ProjectileLaunchEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } - - /** - * Called when an item takes durability damage. - * - * @param event The event that called this watcher. - * @param config The effect config. - */ - fun onDurabilityDamage( - event: PlayerItemDamageEvent, - config: JSONConfig - ) { - // Empty default as effects only override required watchers. - } -} \ No newline at end of file diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effect.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effect.kt index abb60f7a0..efb6e3b6f 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effect.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effect.kt @@ -1,20 +1,18 @@ package com.willfp.libreforge.effects import com.willfp.eco.core.config.interfaces.JSONConfig -import com.willfp.ecoskills.data.storage.MySQLDataHandler.Players.id import com.willfp.libreforge.ConfigurableProperty -import com.willfp.libreforge.Watcher import com.willfp.libreforge.triggers.Trigger import com.willfp.libreforge.triggers.TriggerData import org.bukkit.NamespacedKey import org.bukkit.entity.Player -import java.util.UUID +import java.util.* abstract class Effect( id: String, val supportsFilters: Boolean = false, val applicableTriggers: List = emptyList() -) : ConfigurableProperty(id), Watcher { +) : ConfigurableProperty(id) { init { postInit() } diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effects.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effects.kt index c80887462..ee3012cbe 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effects.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/Effects.kt @@ -5,15 +5,7 @@ import com.google.common.collect.ImmutableList import com.willfp.eco.core.config.interfaces.JSONConfig import com.willfp.libreforge.ConfigViolation import com.willfp.libreforge.LibReforge -import com.willfp.libreforge.effects.effects.EffectAttackSpeedMultiplier -import com.willfp.libreforge.effects.effects.EffectBonusHealth -import com.willfp.libreforge.effects.effects.EffectCritMultiplier -import com.willfp.libreforge.effects.effects.EffectDamageMultiplier -import com.willfp.libreforge.effects.effects.EffectFallDamageMultiplier -import com.willfp.libreforge.effects.effects.EffectGiveMoney -import com.willfp.libreforge.effects.effects.EffectIncomingDamageMultiplier -import com.willfp.libreforge.effects.effects.EffectKnockbackMultiplier -import com.willfp.libreforge.effects.effects.EffectMovementSpeedMultiplier +import com.willfp.libreforge.effects.effects.* import com.willfp.libreforge.filters.Filter import com.willfp.libreforge.filters.Filters import com.willfp.libreforge.filters.filters.CompoundFilter @@ -28,7 +20,6 @@ object Effects { val CRIT_MULTIPLIER: Effect = EffectCritMultiplier() val KNOCKBACK_MULTIPLIER: Effect = EffectKnockbackMultiplier() val GIVE_MONEY: Effect = EffectGiveMoney() - val INCOMING_DAMAGE_MULTIPLIER: Effect = EffectIncomingDamageMultiplier() val ATTACK_SPEED_MULTIPLIER: Effect = EffectAttackSpeedMultiplier() val MOVEMENT_SPEED_MULTIPLIER: Effect = EffectMovementSpeedMultiplier() val BONUS_HEALTH: Effect = EffectBonusHealth() diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt index a2440e946..b63e002b7 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectDamageMultiplier.kt @@ -12,7 +12,8 @@ class EffectDamageMultiplier : Effect( applicableTriggers = listOf( Triggers.TRIDENT_ATTACK, Triggers.BOW_ATTACK, - Triggers.MELEE_ATTACK + Triggers.MELEE_ATTACK, + Triggers.TAKE_DAMAGE ) ) { override fun handle(data: TriggerData, config: JSONConfig) { diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectIncomingDamageMultiplier.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectIncomingDamageMultiplier.kt deleted file mode 100644 index ca4a0522b..000000000 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/effects/effects/EffectIncomingDamageMultiplier.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.willfp.libreforge.effects.effects - -import com.willfp.eco.core.config.interfaces.JSONConfig -import com.willfp.libreforge.effects.Effect -import org.bukkit.entity.Player -import org.bukkit.event.entity.EntityDamageEvent - -class EffectIncomingDamageMultiplier : Effect("incoming_damage_multiplier") { - override fun onIncomingDamage( - victim: Player, - event: EntityDamageEvent, - config: JSONConfig - ) { - event.damage *= config.getDouble("multiplier") - } - - override fun validateConfig(config: JSONConfig): List { - val violations = mutableListOf() - - config.getDoubleOrNull("multiplier") - ?: violations.add( - com.willfp.libreforge.ConfigViolation( - "multiplier", - "You must specify the incoming damage multiplier!" - ) - ) - - return violations - } -} \ No newline at end of file diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/TriggerData.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/TriggerData.kt index 4d8ea8fb5..2188ad90a 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/TriggerData.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/TriggerData.kt @@ -1,5 +1,6 @@ package com.willfp.libreforge.triggers +import org.bukkit.Location import org.bukkit.block.Block import org.bukkit.entity.LivingEntity import org.bukkit.entity.Player @@ -10,5 +11,6 @@ data class TriggerData( val victim: LivingEntity? = null, val block: Block? = null, val event: WrappedEvent<*>? = null, + val location: Location? = null, val projectile: Projectile? = null ) diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/Triggers.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/Triggers.kt index be8478b29..67e989222 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/Triggers.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/Triggers.kt @@ -1,12 +1,6 @@ package com.willfp.libreforge.triggers -import com.willfp.libreforge.triggers.triggers.TriggerBowAttack -import com.willfp.libreforge.triggers.triggers.TriggerJump -import com.willfp.libreforge.triggers.triggers.TriggerKill -import com.willfp.libreforge.triggers.triggers.TriggerMeleeAttack -import com.willfp.libreforge.triggers.triggers.TriggerMineBlock -import com.willfp.libreforge.triggers.triggers.TriggerProjectileLaunch -import com.willfp.libreforge.triggers.triggers.TriggerTridentAttack +import com.willfp.libreforge.triggers.triggers.* object Triggers { private val BY_ID = mutableMapOf() @@ -18,6 +12,9 @@ object Triggers { val JUMP: Trigger = TriggerJump() val KILL: Trigger = TriggerKill() val PROJECTILE_LAUNCH: Trigger = TriggerProjectileLaunch() + val TAKE_DAMAGE: Trigger = TriggerTakeDamage() + val PROJECTILE_HIT: Trigger = TriggerProjectileHit() + val FALL_DAMAGE: Trigger = TriggerFallDamage() fun values(): Set { return BY_ID.values.toSet() diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerBowAttack.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerBowAttack.kt index 3cb5ca39f..9280cd748 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerBowAttack.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerBowAttack.kt @@ -48,8 +48,9 @@ class TriggerBowAttack : Trigger("bow_attack") { TriggerData( player = shooter, victim = victim, + location = victim.location, event = WrappedDamageEvent(event) ) ) } -} \ No newline at end of file +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerFallDamage.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerFallDamage.kt new file mode 100644 index 000000000..1e5db7d6d --- /dev/null +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerFallDamage.kt @@ -0,0 +1,37 @@ +package com.willfp.libreforge.triggers.triggers + +import com.willfp.eco.core.integrations.mcmmo.McmmoManager +import com.willfp.libreforge.triggers.Trigger +import com.willfp.libreforge.triggers.TriggerData +import com.willfp.libreforge.triggers.wrappers.WrappedDamageEvent +import org.bukkit.entity.Player +import org.bukkit.event.EventHandler +import org.bukkit.event.entity.EntityDamageEvent + +class TriggerFallDamage : Trigger("fall_damage") { + @EventHandler(ignoreCancelled = true) + fun onFallDamage(event: EntityDamageEvent) { + if (McmmoManager.isFake(event)) { + return + } + + if (event.cause != EntityDamageEvent.DamageCause.FALL) { + return + } + + val victim = event.entity + + if (victim !is Player) { + return + } + + this.processTrigger( + victim, + TriggerData( + player = victim, + location = victim.location, + event = WrappedDamageEvent(event) + ) + ) + } +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerKill.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerKill.kt index 9cf2221d8..120085655 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerKill.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerKill.kt @@ -43,4 +43,4 @@ class TriggerKill : Trigger("kill") { ) ) } -} \ No newline at end of file +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerMeleeAttack.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerMeleeAttack.kt index 146efd5da..724b9701e 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerMeleeAttack.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerMeleeAttack.kt @@ -47,8 +47,9 @@ class TriggerMeleeAttack : Trigger("melee_attack") { TriggerData( player = attacker, victim = victim, + location = victim.location, event = WrappedDamageEvent(event) ) ) } -} \ No newline at end of file +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerProjectileHit.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerProjectileHit.kt new file mode 100644 index 000000000..570dc2d61 --- /dev/null +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerProjectileHit.kt @@ -0,0 +1,33 @@ +package com.willfp.libreforge.triggers.triggers + +import com.willfp.eco.core.integrations.mcmmo.McmmoManager +import com.willfp.libreforge.triggers.Trigger +import com.willfp.libreforge.triggers.TriggerData +import org.bukkit.entity.Player +import org.bukkit.event.EventHandler +import org.bukkit.event.entity.ProjectileHitEvent + +class TriggerProjectileHit : Trigger("projectile_hit") { + @EventHandler(ignoreCancelled = true) + fun onProjectileHit(event: ProjectileHitEvent) { + if (McmmoManager.isFake(event)) { + return + } + + val projectile = event.entity + val shooter = projectile.shooter + + if (shooter !is Player) { + return + } + + this.processTrigger( + shooter, + TriggerData( + player = shooter, + projectile = projectile, + location = projectile.location + ) + ) + } +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTakeDamage.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTakeDamage.kt new file mode 100644 index 000000000..c471b6a5c --- /dev/null +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTakeDamage.kt @@ -0,0 +1,32 @@ +package com.willfp.libreforge.triggers.triggers + +import com.willfp.eco.core.integrations.mcmmo.McmmoManager +import com.willfp.libreforge.triggers.Trigger +import com.willfp.libreforge.triggers.TriggerData +import com.willfp.libreforge.triggers.wrappers.WrappedDamageEvent +import org.bukkit.entity.Player +import org.bukkit.event.EventHandler +import org.bukkit.event.entity.EntityDamageEvent + +class TriggerTakeDamage : Trigger("take_damage") { + @EventHandler(ignoreCancelled = true) + fun onDamageWearingArmor(event: EntityDamageEvent) { + if (McmmoManager.isFake(event)) { + return + } + + val victim = event.entity + + if (victim !is Player) { + return + } + + this.processTrigger( + victim, + TriggerData( + player = victim, + event = WrappedDamageEvent(event) + ) + ) + } +} diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTridentAttack.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTridentAttack.kt index 5a162899b..7827967b5 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTridentAttack.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/TriggerTridentAttack.kt @@ -49,6 +49,7 @@ class TriggerTridentAttack : Trigger("trident_attack") { player = shooter, victim = victim, projectile = trident, + location = trident.location, event = WrappedDamageEvent(event) ) ) diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/WatcherTriggers.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/WatcherTriggers.kt deleted file mode 100644 index 64fc4e8cc..000000000 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/triggers/triggers/WatcherTriggers.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.willfp.libreforge.triggers.triggers - -import com.willfp.eco.core.EcoPlugin -import com.willfp.eco.core.integrations.mcmmo.McmmoManager -import com.willfp.eco.util.NumberUtils -import com.willfp.libreforge.events.EffectActivateEvent -import com.willfp.libreforge.getHolders -import org.bukkit.entity.Player -import org.bukkit.event.EventHandler -import org.bukkit.event.Listener -import org.bukkit.event.entity.EntityDamageEvent -import org.bukkit.event.entity.ProjectileHitEvent - -internal class WatcherTriggers( - private val plugin: EcoPlugin -) : Listener { - @EventHandler(ignoreCancelled = true) - fun onFallDamage(event: EntityDamageEvent) { - if (McmmoManager.isFake(event)) { - return - } - - if (event.cause != EntityDamageEvent.DamageCause.FALL) { - return - } - - val victim = event.entity - - if (victim !is Player) { - return - } - - for (holder in victim.getHolders()) { - for ((effect, config) in holder.effects) { - if (NumberUtils.randFloat(0.0, 100.0) > (config.getDoubleOrNull("chance") ?: 100.0)) { - continue - } - val aEvent = EffectActivateEvent(victim, holder, effect) - this.plugin.server.pluginManager.callEvent(aEvent) - if (!aEvent.isCancelled) { - effect.onFallDamage(victim, event, config) - } - } - } - } - - @EventHandler(ignoreCancelled = true) - fun onProjectileHit(event: ProjectileHitEvent) { - if (McmmoManager.isFake(event)) { - return - } - - val projectile = event.entity - val shooter = projectile.shooter - - if (shooter !is Player) { - return - } - - for (holder in shooter.getHolders()) { - for ((effect, config) in holder.effects) { - if (NumberUtils.randFloat(0.0, 100.0) > (config.getDoubleOrNull("chance") ?: 100.0)) { - continue - } - val aEvent = EffectActivateEvent(shooter, holder, effect) - this.plugin.server.pluginManager.callEvent(aEvent) - if (!aEvent.isCancelled) { - effect.onProjectileHit(shooter, event, config) - } - } - } - } - - @EventHandler(ignoreCancelled = true) - fun onDamageWearingArmor(event: EntityDamageEvent) { - if (McmmoManager.isFake(event)) { - return - } - - val victim = event.entity - - if (victim !is Player) { - return - } - - for (holder in victim.getHolders()) { - for ((effect, config) in holder.effects) { - if (NumberUtils.randFloat(0.0, 100.0) > (config.getDoubleOrNull("chance") ?: 100.0)) { - continue - } - val aEvent = EffectActivateEvent(victim, holder, effect) - this.plugin.server.pluginManager.callEvent(aEvent) - if (!aEvent.isCancelled) { - effect.onIncomingDamage(victim, event, config) - } - } - } - } -} \ No newline at end of file diff --git a/lib/UltimateHelper.jar b/lib/UltimateHelper.jar deleted file mode 100644 index ae003d5e8c38ae3901f2492a3ec1a3f3fb92cbf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187533 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