From ebde85cdfe68f196559cc46dec4f4cd0746b4090 Mon Sep 17 00:00:00 2001 From: Travja Date: Sun, 26 Jan 2025 14:20:51 -0700 Subject: [PATCH] Don't apply attack power modification if the damage being done is skill damage. Let Fabled take care of *when* attacks can happen --- .../magemonkey/divinity/hooks/external/FabledHook.java | 9 +++++++++ .../divinity/manager/damage/DamageManager.java | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/java/studio/magemonkey/divinity/hooks/external/FabledHook.java b/src/main/java/studio/magemonkey/divinity/hooks/external/FabledHook.java index 74d810ff..3af9c5b5 100644 --- a/src/main/java/studio/magemonkey/divinity/hooks/external/FabledHook.java +++ b/src/main/java/studio/magemonkey/divinity/hooks/external/FabledHook.java @@ -1,5 +1,6 @@ package studio.magemonkey.divinity.hooks.external; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -163,6 +164,14 @@ public boolean ignoreDivinity(LivingEntity player) { return divinityIgnored.contains(player.getUniqueId()); } + public boolean isSkillDamage() { + if (!Bukkit.getPluginManager().isPluginEnabled("Fabled")) { + return false; + } + + return Skill.isSkillDamage(); + } + public void addSkill(Player player, String skillId, int level) { PlayerData playerData = Fabled.getData(player); Skill skill = Fabled.getSkill(skillId); diff --git a/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java b/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java index 7b7adfcd..ecd89b1c 100644 --- a/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java +++ b/src/main/java/studio/magemonkey/divinity/manager/damage/DamageManager.java @@ -33,6 +33,8 @@ import studio.magemonkey.divinity.api.PartyAPI; import studio.magemonkey.divinity.api.event.DivinityDamageEvent; import studio.magemonkey.divinity.config.EngineCfg; +import studio.magemonkey.divinity.hooks.EHook; +import studio.magemonkey.divinity.hooks.external.FabledHook; import studio.magemonkey.divinity.hooks.external.mythicmobs.AbstractMythicMobsHK; import studio.magemonkey.divinity.manager.effects.main.AdjustStatEffect; import studio.magemonkey.divinity.manager.effects.main.DisarmEffect; @@ -217,6 +219,11 @@ public void onDamageRPGStart(@NotNull DivinityDamageEvent.Start e) { double powerMod = metadata == null || metadata.isEmpty() ? (statsDamager != null ? statsDamager.getAttackPowerModifier() : 1D) : metadata.get(0).asInt(); + FabledHook skillApi = (FabledHook) Divinity.getInstance().getHook(EHook.SKILL_API); + if (skillApi != null && skillApi.isSkillDamage() && damager != null && !skillApi.ignoreDivinity(damager)) { + powerMod = 1; + } + double directMod = meta.getDirectModifier(); double critMod = meta.getCriticalModifier(); double blockMod = meta.getBlockModifier();