38b3182a90
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: befcf86d SPIGOT-7740: Fix using new map cursor types 09229095 Add EntityDamageEvent.DamageCause#CAMPFIRE CraftBukkit Changes: a1d2cd152 SPIGOT-7747: Mob head is not dropped when mob was blown up by a charged creeper 8078294bc SPIGOT-7746: Server Crashing when Players Getting into End Portals 8d842e250 SPIGOT-7744: Fix exception for shooting projectiles with flame enchantment 64e0ad129 SPIGOT-7744: Fix crash when shooting arrows in creative mode 819f7a10a Fix player items not dropping on death 0a0229bb5 Implement DamageCause#CAMPFIRE and minor improvement in exception for Unhandled block damage
45 Zeilen
2.1 KiB
Diff
45 Zeilen
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
|
Date: Wed, 20 Jan 2021 14:23:37 -0600
|
|
Subject: [PATCH] Allow adding items to BlockDropItemEvent
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
index 7310d8011fc27b17360887c048cb6eb79e2c0b1f..edb5d93684d959dbad0115643b3c9f5096ceee3a 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -452,13 +452,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
|
|
}
|
|
}
|
|
|