From 9d3bf472acddece2134c0a4b61209c2f7c1bd171 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 11 May 2023 14:53:13 +0100 Subject: [PATCH] Made skill crits work --- .../kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt | 4 +++- .../com/willfp/ecoskills/skills/SkillCrits.kt | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt index ebcfba2..3969605 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt @@ -20,6 +20,7 @@ import com.willfp.ecoskills.libreforge.FilterSkill import com.willfp.ecoskills.libreforge.TriggerGainSkillXp import com.willfp.ecoskills.libreforge.TriggerLevelUpSkill import com.willfp.ecoskills.skills.EcoSkillsTopPlaceholder +import com.willfp.ecoskills.skills.SkillCritListener import com.willfp.ecoskills.skills.Skills import com.willfp.ecoskills.skills.display.DamageIndicatorListener import com.willfp.ecoskills.skills.display.GainXPDisplay @@ -90,7 +91,8 @@ class EcoSkillsPlugin : LibreforgePlugin() { LevelUpDisplay(this), GainXPDisplay(this), DamageIndicatorListener(this), - ActionBarGamemodeListener + ActionBarGamemodeListener, + SkillCritListener ) } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillCrits.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillCrits.kt index 0a95fcb..d9d64ab 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillCrits.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillCrits.kt @@ -1,5 +1,8 @@ package com.willfp.ecoskills.skills +import org.bukkit.event.EventHandler +import org.bukkit.event.EventPriority +import org.bukkit.event.Listener import org.bukkit.event.entity.EntityDamageByEntityEvent import java.util.WeakHashMap @@ -13,3 +16,14 @@ var EntityDamageByEntityEvent.skillCrit: Double val EntityDamageByEntityEvent.isSkillCrit: Boolean get() = map.containsKey(this) + +object SkillCritListener : Listener { + @EventHandler( + priority = EventPriority.HIGH + ) + fun handle(event: EntityDamageByEntityEvent) { + if (event.isSkillCrit) { + event.damage *= event.skillCrit + } + } +}