From e1faa8e8148d843ad692e15b6ebc37dc918cd246 Mon Sep 17 00:00:00 2001 From: Jake Potrebic <jake.m.potrebic@gmail.com> Date: Fri, 29 Dec 2023 11:57:32 -0800 Subject: [PATCH] Call entity_die game event after event cancel check (#10096) --- patches/server/Improve-death-events.patch | 10 ++++++++++ patches/server/PlayerDeathEvent-getItemsToKeep.patch | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/patches/server/Improve-death-events.patch b/patches/server/Improve-death-events.patch index 542d47de30..037a7ae117 100644 --- a/patches/server/Improve-death-events.patch +++ b/patches/server/Improve-death-events.patch @@ -34,6 +34,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // CraftBukkit start public String displayName; @@ -0,0 +0,0 @@ public class ServerPlayer extends Player { + + @Override + public void die(DamageSource damageSource) { +- this.gameEvent(GameEvent.ENTITY_DIE); ++ // this.gameEvent(GameEvent.ENTITY_DIE); // Paper - move below event cancellation check + boolean flag = this.level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES); + // CraftBukkit start - fire PlayerDeathEvent + if (this.isRemoved()) { +@@ -0,0 +0,0 @@ public class ServerPlayer extends Player { String deathmessage = defaultMessage.getString(); this.keepLevel = keepInventory; // SPIGOT-2222: pre-set keepLevel org.bukkit.event.entity.PlayerDeathEvent event = CraftEventFactory.callPlayerDeathEvent(this, loot, PaperAdventure.asAdventure(defaultMessage), defaultMessage.getString(), keepInventory); // Paper - Adventure @@ -45,6 +54,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + return; + } ++ this.gameEvent(GameEvent.ENTITY_DIE); // moved from the top of this method + // Paper end // SPIGOT-943 - only call if they have an inventory open diff --git a/patches/server/PlayerDeathEvent-getItemsToKeep.patch b/patches/server/PlayerDeathEvent-getItemsToKeep.patch index 86a245aad9..65dc001af7 100644 --- a/patches/server/PlayerDeathEvent-getItemsToKeep.patch +++ b/patches/server/PlayerDeathEvent-getItemsToKeep.patch @@ -60,7 +60,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + @Override public void die(DamageSource damageSource) { - this.gameEvent(GameEvent.ENTITY_DIE); + // this.gameEvent(GameEvent.ENTITY_DIE); // Paper - move below event cancellation check @@ -0,0 +0,0 @@ public class ServerPlayer extends Player { this.dropExperience(); // we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory.