From 12abd68adde9b0529fa695806c12806544aff702 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Fri, 28 Feb 2020 15:43:32 -0800 Subject: [PATCH] Rupture fires a FakeEntityDamageByEntityEvent fixes #4122 --- Changelog.txt | 2 +- .../com/gmail/nossr50/runnables/skills/BleedTimerTask.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index c4268e7d8..276222851 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -2,12 +2,12 @@ Version 2.1.118 Fixed another dupe bug Blast Mining no longer reduces debris from explosions due to some issues with the Bukkit API Modified locale string 'Mining.Blast.Effect' to remove debris reduction mention + Rupture now fires a FakeEntityDamageByEntityEvent before damaging its victims (cancelling it will be ignored) Version 2.1.117 Fixed a rare http error when polling Mojang for UUIDs Fixed a bug that allowed duping - Version 2.1.116 Fixed directional plants not maintaining their direction when replanted diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java index 3fa01dd57..e8b283bff 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.runnables.skills; import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.datatypes.interactions.NotificationType; +import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.MobHealthbarUtils; import com.gmail.nossr50.util.player.NotificationManager; @@ -12,6 +13,7 @@ import com.gmail.nossr50.util.sounds.SoundType; import org.bukkit.Bukkit; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; @@ -115,6 +117,10 @@ public class BleedTimerTask extends BukkitRunnable { // debugMessage+="TargetHealthBeforeDMG=["+String.valueOf(target.getHealth())+"], "; + //Fire a fake event + FakeEntityDamageByEntityEvent fakeEntityDamageByEntityEvent = (FakeEntityDamageByEntityEvent) CombatUtils.sendEntityDamageEvent(containerEntry.getValue().damageSource, target, EntityDamageEvent.DamageCause.CUSTOM, damage); + Bukkit.getPluginManager().callEvent(fakeEntityDamageByEntityEvent); + CombatUtils.dealNoInvulnerabilityTickDamageRupture(target, damage, containerEntry.getValue().damageSource, toolTier); double victimHealthAftermath = target.getHealth();