mirror of
https://github.com/PaperMC/Paper.git
synced 2025-03-02 11:22:01 +01:00
Allow adding items to BlockDropItemEvent
This commit is contained in:
parent
1d6a99b50b
commit
6888386225
@ -461,13 +461,30 @@ public class CraftEventFactory {
|
||||
}
|
||||
|
||||
public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List<ItemEntity> items) {
|
||||
BlockDropItemEvent event = new BlockDropItemEvent(block, state, player.getBukkitEntity(), Lists.transform(items, (item) -> (org.bukkit.entity.Item) item.getBukkitEntity()));
|
||||
// Paper start - Allow adding items to BlockDropItemEvent
|
||||
List<Item> list = new ArrayList<>();
|
||||
for (ItemEntity item : items) {
|
||||
list.add((Item) item.getBukkitEntity());
|
||||
}
|
||||
BlockDropItemEvent event = new BlockDropItemEvent(block, state, player.getBukkitEntity(), list);
|
||||
// Paper end - Allow adding items to BlockDropItemEvent
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
for (ItemEntity item : items) {
|
||||
item.level().addFreshEntity(item);
|
||||
// Paper start - Allow adding items to BlockDropItemEvent
|
||||
for (Item bukkit : list) {
|
||||
if (!bukkit.isValid()) {
|
||||
Entity item = ((org.bukkit.craftbukkit.entity.CraftItem) bukkit).getHandle();
|
||||
item.level().addFreshEntity(item);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (Item bukkit : list) {
|
||||
if (bukkit.isValid()) {
|
||||
bukkit.remove();
|
||||
}
|
||||
}
|
||||
// Paper end - Allow adding items to BlockDropItemEvent
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user