mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-09 19:49:35 +01:00
Preserve data if possible when dropping Items from entities. Partial solution for BUKKIT-15
By: Tahg <tahgtahv@gmail.com>
This commit is contained in:
parent
02109efbfc
commit
14196c7d71
1 changed files with 16 additions and 2 deletions
|
@ -288,7 +288,15 @@ public class CraftEventFactory {
|
|||
victim.expToDrop = event.getDroppedExp();
|
||||
|
||||
for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {
|
||||
world.dropItemNaturally(entity.getLocation(), stack);
|
||||
if (stack == null || stack.getType() == Material.AIR) continue;
|
||||
|
||||
if (stack instanceof CraftItemStack) {
|
||||
// Use the internal item to preserve possible data.
|
||||
victim.a(((CraftItemStack) stack).getHandle(), 0.0f);
|
||||
}
|
||||
else {
|
||||
world.dropItemNaturally(entity.getLocation(), stack);
|
||||
}
|
||||
}
|
||||
|
||||
return event;
|
||||
|
@ -310,7 +318,13 @@ public class CraftEventFactory {
|
|||
for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {
|
||||
if (stack == null || stack.getType() == Material.AIR) continue;
|
||||
|
||||
world.dropItemNaturally(entity.getLocation(), stack);
|
||||
if (stack instanceof CraftItemStack) {
|
||||
// Use the internal item to preserve possible data.
|
||||
victim.a(((CraftItemStack) stack).getHandle(), 0.0f);
|
||||
}
|
||||
else {
|
||||
world.dropItemNaturally(entity.getLocation(), stack);
|
||||
}
|
||||
}
|
||||
|
||||
return event;
|
||||
|
|
Loading…
Reference in a new issue