c919e944ff
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: f50ad1f8 PR-798: Add PrepareGrindstoneEvent and refactor related events to use PrepareInventoryResultEvent 0cac7963 SPIGOT-7204: Add TeleportCause#DISMOUNT b4dd47b0 SPIGOT-7202: Deprecate removed door effects CraftBukkit Changes: ab1586c2f PR-1123: Add PrepareGrindstoneEvent b402824ea SPIGOT-7204: Add TeleportCause#DISMOUNT 06a6a1012 PR-1121: Add unit test for spawn egg meta c18668be3 SPIGOT-7192: Call PlayerInteractEvent with Action.LEFT_CLICK_AIR if the entity interacted is hidden to the player 47124f639 Increase outdated build delay 645993470 SPIGOT-7201: Spawner ItemMeta not working as expected
45 Zeilen
1.9 KiB
Diff
45 Zeilen
1.9 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 a0cc7dc09bfb74e0101e53c5c53dcf9438541ee0..5927968003b6ff55bd524244338c236892d4ca88 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -400,13 +400,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
|
|
+ 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
|
|
Bukkit.getPluginManager().callEvent(event);
|
|
|
|
if (!event.isCancelled()) {
|
|
- for (ItemEntity item : items) {
|
|
- item.level.addFreshEntity(item);
|
|
+ // Paper start
|
|
+ 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
|
|
}
|
|
}
|
|
|