From 17cde37876d94addedd1f30ee0c6837997c1d42b Mon Sep 17 00:00:00 2001 From: Mariell Hoversholm Date: Sun, 23 Aug 2020 19:01:04 +0200 Subject: [PATCH] Don't require FACING data --- .../DefaultDispenseItemBehavior.java.patch | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java.patch index 106bd8d147..4766c23435 100644 --- a/paper-server/patches/sources/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java.patch +++ b/paper-server/patches/sources/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java +++ b/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java -@@ -6,11 +6,25 @@ +@@ -6,47 +6,114 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.DispenserBlock; @@ -12,6 +12,7 @@ +// CraftBukkit end public class DefaultDispenseItemBehavior implements DispenseItemBehavior { ++ private Direction enumdirection; // Paper - cache facing direction private static final int DEFAULT_ACCURACY = 6; @@ -26,7 +27,19 @@ public DefaultDispenseItemBehavior() {} @Override -@@ -27,26 +41,77 @@ + public final ItemStack dispense(BlockSource pointer, ItemStack stack) { ++ enumdirection = pointer.state().getValue(DispenserBlock.FACING); // Paper - cache facing direction + ItemStack itemstack1 = this.execute(pointer, stack); + + this.playSound(pointer); +- this.playAnimation(pointer, (Direction) pointer.state().getValue(DispenserBlock.FACING)); ++ this.playAnimation(pointer, enumdirection); // Paper - cache facing direction + return itemstack1; + } + + protected ItemStack execute(BlockSource pointer, ItemStack stack) { +- Direction enumdirection = (Direction) pointer.state().getValue(DispenserBlock.FACING); ++ // Paper - cached enum direction Position iposition = DispenserBlock.getDispensePosition(pointer); ItemStack itemstack1 = stack.split(1);