diff --git a/patches/server/Restore-vanilla-entity-drops-behavior.patch b/patches/server/Restore-vanilla-entity-drops-behavior.patch index 1d03521e1..f46317e95 100644 --- a/patches/server/Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/Restore-vanilla-entity-drops-behavior.patch @@ -188,12 +188,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 lootCheck.run(); // Paper - advancement triggers before destroying items - for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -- if (stack == null || stack.getType() == Material.AIR || stack.getAmount() == 0) continue; + // Paper start + for (Entity.DefaultDrop drop : drops) { ++ if (drop == null) continue;; + final org.bukkit.inventory.ItemStack stack = drop.stack(); -+ if (drop == null || stack == null || stack.getType() == Material.AIR || stack.getAmount() == 0) continue; + // Paper end + if (stack == null || stack.getType() == Material.AIR || stack.getAmount() == 0) continue; - world.dropItem(entity.getLocation(), stack); // Paper - note: dropItem already clones due to this being bukkit -> NMS + drop.runConsumer(world, entity.getLocation()); // Paper @@ -216,12 +216,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 victim.newExp = event.getNewExp(); - for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -- if (stack == null || stack.getType() == Material.AIR) continue; + // Paper start + for (Entity.DefaultDrop drop : drops) { ++ if (drop == null) continue; + final org.bukkit.inventory.ItemStack stack = drop.stack(); -+ if (drop == null || stack == null || stack.getType() == Material.AIR) continue; + // Paper end + if (stack == null || stack.getType() == Material.AIR) continue; - world.dropItem(entity.getLocation(), stack); + drop.runConsumer(world, entity.getLocation()); // Paper