SPIGOT-3033: Alter behaviour of cancelled hopper transfers

This commit is contained in:
md_5 2017-01-26 11:13:00 +11:00
parent 46226d6a03
commit 334aa07e2f

View File

@ -56,7 +56,7 @@
}
public void F_() {
@@ -163,10 +197,35 @@
@@ -163,10 +197,34 @@
for (int i = 0; i < this.getSize(); ++i) {
if (!this.getItem(i).isEmpty()) {
ItemStack itemstack = this.getItem(i).cloneItemStack();
@ -78,8 +78,7 @@
+ this.getWorld().getServer().getPluginManager().callEvent(event);
+ if (event.isCancelled()) {
+ this.setItem(i, itemstack);
+ this.setCooldown(8); // Delay hopper checks
+ return false;
+ continue;
+ }
+ ItemStack itemstack1 = addItem(this, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
@ -94,7 +93,7 @@
return true;
}
@@ -288,10 +347,41 @@
@@ -288,10 +346,41 @@
if (!itemstack.isEmpty() && b(iinventory, itemstack, i, enumdirection)) {
ItemStack itemstack1 = itemstack.cloneItemStack();
@ -138,7 +137,7 @@
return true;
}
@@ -307,6 +397,13 @@
@@ -307,6 +396,13 @@
if (entityitem == null) {
return false;
} else {