geforkt von Mirrors/Paper
aa52bf9e33
Mojang made some changes to priorities in 1.17 and it seems that these changes conflict with the changes made in this patch, which in some cases appears to cause excessive rescheduling of tasks. This, however, is not confirmed as such but seems to be the behavior that we're seeing to cause this issue, if mojang has adopted the changes we suggested, then a good chunk of this patch may be unneeded, but, this needs a much better look than I'm currently able to do
36 Zeilen
1.7 KiB
Diff
36 Zeilen
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Mariell Hoversholm <proximyst@proximyst.com>
|
|
Date: Sun, 23 Aug 2020 19:01:04 +0200
|
|
Subject: [PATCH] Don't require FACING data
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java
|
|
index 0c286d7254f653bc855b1cb329fa76e3c1669b3c..05c0f0049421bc897f8e722331e30a6756ebbeea 100644
|
|
--- a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java
|
|
+++ b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java
|
|
@@ -14,20 +14,22 @@ import org.bukkit.event.block.BlockDispenseEvent;
|
|
// CraftBukkit end
|
|
|
|
public class DefaultDispenseItemBehavior implements DispenseItemBehavior {
|
|
+ private Direction enumdirection; // Paper
|
|
|
|
public DefaultDispenseItemBehavior() {}
|
|
|
|
@Override
|
|
public final ItemStack dispense(BlockSource pointer, ItemStack stack) {
|
|
+ enumdirection = pointer.getBlockState().getValue(DispenserBlock.FACING); // Paper - cache facing direction
|
|
ItemStack itemstack1 = this.execute(pointer, stack);
|
|
|
|
this.playSound(pointer);
|
|
- this.playAnimation(pointer, (Direction) pointer.getBlockState().getValue(DispenserBlock.FACING));
|
|
+ this.playAnimation(pointer, enumdirection); // Paper - cache facing direction
|
|
return itemstack1;
|
|
}
|
|
|
|
protected ItemStack execute(BlockSource pointer, ItemStack stack) {
|
|
- Direction enumdirection = (Direction) pointer.getBlockState().getValue(DispenserBlock.FACING);
|
|
+ // Paper - cached enum direction
|
|
Position iposition = DispenserBlock.getDispensePosition(pointer);
|
|
ItemStack itemstack1 = stack.split(1);
|
|
|