diff --git a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java index 4ed08e6..22b4b82 100644 --- a/src/main/java/net/coreprotect/listener/player/HopperPullListener.java +++ b/src/main/java/net/coreprotect/listener/player/HopperPullListener.java @@ -7,6 +7,7 @@ import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.inventory.BrewerInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -48,6 +49,17 @@ public final class HopperPullListener { boolean abort = false; 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()) { if (itemStack != null && Util.getItemStackHashCode(itemStack) == itemHash) { abort = true; @@ -58,11 +70,15 @@ public final class HopperPullListener { if (abort) { for (ItemStack itemStack : destinationHolder.getInventory().getContents()) { if (itemStack != null && Util.getItemStackHashCode(itemStack) == Util.getItemStackHashCode(movedItem)) { - abort = false; + if (itemHash == Util.getItemStackHashCode(itemStack) && destinationHolder.getInventory().firstEmpty() > -1) { + abort = false; + } + break; } } } + */ } else { ItemStack[] sourceContents = sourceHolder.getInventory().getContents(); diff --git a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java index 8516e08..df8d3b8 100644 --- a/src/main/java/net/coreprotect/listener/player/HopperPushListener.java +++ b/src/main/java/net/coreprotect/listener/player/HopperPushListener.java @@ -7,6 +7,7 @@ import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.inventory.BrewerInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -49,7 +50,7 @@ public final class HopperPushListener { 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) { + if (itemHash != Util.getItemStackHashCode(movedItem) || destinationHolder.getInventory().firstEmpty() == -1 || destinationHolder.getInventory() instanceof BrewerInventory) { abort = true; }