2021-06-11 14:02:28 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: TheViperShow <29604693+TheViperShow@users.noreply.github.com>
|
|
|
|
Date: Wed, 22 Apr 2020 09:40:38 +0200
|
|
|
|
Subject: [PATCH] Implemented BlockFailedDispenseEvent
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
2022-06-08 09:30:41 +02:00
|
|
|
index c0e19826163b0eaa429d217b54bb67b8b582a669..85c5319837295bd2f85baebfe8d6660b267f1d5f 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java
|
2022-06-08 09:30:41 +02:00
|
|
|
@@ -84,8 +84,10 @@ public class DispenserBlock extends BaseEntityBlock {
|
|
|
|
int i = tileentitydispenser.getRandomSlot(world.random);
|
2021-06-11 14:02:28 +02:00
|
|
|
|
|
|
|
if (i < 0) {
|
2021-06-14 21:17:47 +02:00
|
|
|
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) {// Paper - BlockFailedDispenseEvent is called here
|
|
|
|
world.levelEvent(1001, pos, 0);
|
2022-06-08 09:30:41 +02:00
|
|
|
world.gameEvent((Entity) null, GameEvent.DISPENSE_FAIL, pos);
|
2021-06-14 21:17:47 +02:00
|
|
|
+ } // Paper
|
2021-06-11 14:02:28 +02:00
|
|
|
} else {
|
|
|
|
ItemStack itemstack = tileentitydispenser.getItem(i);
|
2021-06-14 21:17:47 +02:00
|
|
|
DispenseItemBehavior idispensebehavior = this.getDispenseMethod(itemstack);
|
2021-06-11 14:02:28 +02: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
|
2022-06-08 09:30:41 +02:00
|
|
|
index 1415ad60163f6584619cc7caa61f1848d6ebaa93..801c4c120e98584bcf218a4ef9bd66d7d18c1097 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
|
2021-11-24 18:58:26 +01:00
|
|
|
@@ -44,6 +44,7 @@ public class DropperBlock extends DispenserBlock {
|
2022-06-08 09:30:41 +02:00
|
|
|
int i = tileentitydispenser.getRandomSlot(world.random);
|
2021-06-11 14:02:28 +02:00
|
|
|
|
|
|
|
if (i < 0) {
|
2021-06-14 21:17:47 +02:00
|
|
|
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) // Paper - BlockFailedDispenseEvent is called here
|
|
|
|
world.levelEvent(1001, pos, 0);
|
2021-06-11 14:02:28 +02:00
|
|
|
} else {
|
|
|
|
ItemStack itemstack = tileentitydispenser.getItem(i);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2023-03-14 21:25:13 +01:00
|
|
|
index 8b00741f2e17d9f1b2759ffba5d322b6e3439ab5..5f14203089f989023c84ea6a8e1d491779498118 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2022-12-23 06:20:44 +01:00
|
|
|
@@ -1876,4 +1876,12 @@ public class CraftEventFactory {
|
2021-09-01 14:03:36 +02:00
|
|
|
EntitiesUnloadEvent event = new EntitiesUnloadEvent(new CraftChunk((ServerLevel) world, coords.x, coords.z), bukkitEntities);
|
2021-06-11 14:02:28 +02:00
|
|
|
Bukkit.getPluginManager().callEvent(event);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
2021-06-14 21:17:47 +02:00
|
|
|
+ public static boolean handleBlockFailedDispenseEvent(ServerLevel serverLevel, BlockPos blockposition) {
|
|
|
|
+ org.bukkit.block.Block block = serverLevel.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
|
|
+ io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block);
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return event.callEvent();
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|