89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
38 Zeilen
1.8 KiB
Diff
38 Zeilen
1.8 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 f25e28098df0a21fd1ae55f5527cddcef9a36b0d..f28705547a62da790f5df071400986aacba39367 100644
|
|
--- a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java
|
|
+++ b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java
|
|
@@ -14,6 +14,7 @@ import org.bukkit.event.block.BlockDispenseEvent;
|
|
// CraftBukkit end
|
|
|
|
public class DefaultDispenseItemBehavior implements DispenseItemBehavior {
|
|
+ private Direction enumdirection; // Paper - cache facing direction
|
|
|
|
// CraftBukkit start
|
|
private boolean dropper;
|
|
@@ -27,15 +28,16 @@ public class DefaultDispenseItemBehavior implements DispenseItemBehavior {
|
|
|
|
@Override
|
|
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);
|
|
|