2021-06-14 21:58:32 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
2021-09-20 11:30:04 +02:00
|
|
|
From: Madeline Miller <mnmiller1@me.com>
|
2021-06-14 21:58:32 +02:00
|
|
|
Date: Sun, 17 Jan 2021 13:16:09 +1000
|
2024-01-19 22:13:42 +01:00
|
|
|
Subject: [PATCH] Add BlockPreDispenseEvent
|
2021-06-14 21:58:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
2024-10-27 18:47:50 +01:00
|
|
|
index 352f5412fc469a1fde6f14ffcaf00e88613b2704..9f99a9ec8f8269a0aeee2d6aa68f8a344f5f64b6 100644
|
2021-06-14 21:58:32 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
2024-10-23 19:46:06 +02:00
|
|
|
@@ -107,6 +107,7 @@ public class DispenserBlock extends BaseEntityBlock {
|
2024-04-24 15:46:45 +02:00
|
|
|
DispenseItemBehavior idispensebehavior = this.getDispenseMethod(world, itemstack);
|
2021-06-14 21:58:32 +02:00
|
|
|
|
2023-09-22 07:41:27 +02:00
|
|
|
if (idispensebehavior != DispenseItemBehavior.NOOP) {
|
2024-01-20 23:13:41 +01:00
|
|
|
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - Add BlockPreDispenseEvent
|
2023-09-22 07:41:27 +02:00
|
|
|
DispenserBlock.eventFired = false; // CraftBukkit - reset event status
|
|
|
|
tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack));
|
|
|
|
}
|
2024-02-10 22:19:22 +01:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
|
2024-10-27 18:47:50 +01:00
|
|
|
index 3e09d4b11c881b9c7d3447df379286238076cfee..1762415720caa722600ab7e81344ee9168e42011 100644
|
2024-02-10 22:19:22 +01:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
|
2024-04-24 15:46:45 +02:00
|
|
|
@@ -71,6 +71,7 @@ public class DropperBlock extends DispenserBlock {
|
2024-02-10 22:19:22 +01:00
|
|
|
ItemStack itemstack1;
|
|
|
|
|
|
|
|
if (iinventory == null) {
|
|
|
|
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - Add BlockPreDispenseEvent
|
|
|
|
itemstack1 = DropperBlock.DISPENSE_BEHAVIOUR.dispense(sourceblock, itemstack);
|
|
|
|
} else {
|
|
|
|
// CraftBukkit start - Fire event when pushing items into other inventories
|
2021-06-14 21:58:32 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2024-10-24 12:11:32 +02:00
|
|
|
index 1e918ef9296e5127b78a7eb0460225448982772e..a25e814978a2f19fa6fe74aaa5c529a524240d71 100644
|
2021-06-14 21:58:32 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2024-10-24 12:11:32 +02:00
|
|
|
@@ -2132,5 +2132,11 @@ public class CraftEventFactory {
|
2021-06-14 21:58:32 +02:00
|
|
|
io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block);
|
|
|
|
return event.callEvent();
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ public static boolean handleBlockPreDispenseEvent(ServerLevel serverLevel, BlockPos pos, ItemStack itemStack, int slot) {
|
2024-02-01 10:15:57 +01:00
|
|
|
+ org.bukkit.block.Block block = CraftBlock.at(serverLevel, pos);
|
2021-06-14 21:58:32 +02:00
|
|
|
+ io.papermc.paper.event.block.BlockPreDispenseEvent event = new io.papermc.paper.event.block.BlockPreDispenseEvent(block, org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), slot);
|
|
|
|
+ return event.callEvent();
|
|
|
|
+ }
|
|
|
|
// Paper end
|
|
|
|
}
|