Fixed hopper transactions not always detecting invalid events
This commit is contained in:
parent
3f0291e0d5
commit
6fce87386d
2 changed files with 19 additions and 2 deletions
|
|
@ -7,6 +7,7 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.inventory.BrewerInventory;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
@ -48,6 +49,17 @@ public final class HopperPullListener {
|
||||||
boolean abort = false;
|
boolean abort = false;
|
||||||
|
|
||||||
if (ConfigHandler.isPaper) {
|
if (ConfigHandler.isPaper) {
|
||||||
|
for (ItemStack itemStack : sourceHolder.getInventory().getContents()) {
|
||||||
|
if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) {
|
||||||
|
if (itemHash != Util.getItemStackHashCode(movedItem) || destinationHolder.getInventory().firstEmpty() == -1 || destinationHolder.getInventory() instanceof BrewerInventory) {
|
||||||
|
abort = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
for (ItemStack itemStack : sourceHolder.getInventory().getContents()) {
|
for (ItemStack itemStack : sourceHolder.getInventory().getContents()) {
|
||||||
if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) {
|
if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) {
|
||||||
abort = true;
|
abort = true;
|
||||||
|
|
@ -58,11 +70,15 @@ public final class HopperPullListener {
|
||||||
if (abort) {
|
if (abort) {
|
||||||
for (ItemStack itemStack : destinationHolder.getInventory().getContents()) {
|
for (ItemStack itemStack : destinationHolder.getInventory().getContents()) {
|
||||||
if (itemStack != null && Util.getItemStackHashCode(itemStack) == Util.getItemStackHashCode(movedItem)) {
|
if (itemStack != null && Util.getItemStackHashCode(itemStack) == Util.getItemStackHashCode(movedItem)) {
|
||||||
abort = false;
|
if (itemHash == Util.getItemStackHashCode(itemStack) && destinationHolder.getInventory().firstEmpty() > -1) {
|
||||||
|
abort = false;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ItemStack[] sourceContents = sourceHolder.getInventory().getContents();
|
ItemStack[] sourceContents = sourceHolder.getInventory().getContents();
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.inventory.BrewerInventory;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
@ -49,7 +50,7 @@ public final class HopperPushListener {
|
||||||
if (ConfigHandler.isPaper) {
|
if (ConfigHandler.isPaper) {
|
||||||
for (ItemStack itemStack : sourceHolder.getInventory().getContents()) {
|
for (ItemStack itemStack : sourceHolder.getInventory().getContents()) {
|
||||||
if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) {
|
if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) {
|
||||||
if (itemHash != Util.getItemStackHashCode(movedItem) || destinationHolder.getInventory().firstEmpty() == -1) {
|
if (itemHash != Util.getItemStackHashCode(movedItem) || destinationHolder.getInventory().firstEmpty() == -1 || destinationHolder.getInventory() instanceof BrewerInventory) {
|
||||||
abort = true;
|
abort = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue