From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> Date: Wed, 6 Dec 2023 19:44:06 -0500 Subject: [PATCH] Hotfix DefaultDispenseItemBehavior#spawnItem This method should generally be cleaned up entirely, but, lol. For now just readd the original vanilla method. diff --git a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java @@ -0,0 +0,0 @@ public class DefaultDispenseItemBehavior implements DispenseItemBehavior { return stack; } + // Paper start - Readd original NMS method + public static void spawnItem(Level world, ItemStack itemstack, int i, Direction enumdirection, Position iposition) { + double d0 = iposition.x(); + double d1 = iposition.y(); + double d2 = iposition.z(); + + if (enumdirection.getAxis() == Direction.Axis.Y) { + d1 -= 0.125D; + } else { + d1 -= 0.15625D; + } + + ItemEntity entityitem = new ItemEntity(world, d0, d1, d2, itemstack); + double d3 = world.random.nextDouble() * 0.1D + 0.2D; + + entityitem.setDeltaMovement(world.random.triangle((double) enumdirection.getStepX() * d3, 0.0172275D * (double) i), world.random.triangle(0.2D, 0.0172275D * (double) i), world.random.triangle((double) enumdirection.getStepZ() * d3, 0.0172275D * (double) i)); + world.addFreshEntity(entityitem); + } + // Paper end // CraftBukkit start - void -> boolean return, IPosition -> ISourceBlock last argument, dropper public static boolean spawnItem(Level world, ItemStack itemstack, int i, Direction enumdirection, BlockSource sourceblock, boolean dropper) { if (itemstack.isEmpty()) return true;