From 7fa7b726f2cddc7e78778da80799817bb0a934b7 Mon Sep 17 00:00:00 2001 From: NotMyWing Date: Mon, 27 May 2024 20:41:15 +1100 Subject: [PATCH] Disable extracting invisible items from Storage Buses altogether Reverts d82cdabc6deaaceb211e49782ef8abe338e691a2, closes #408 Allows Cells to report/extract lingering unpartitioned items --- .../implementations/ContainerCraftConfirm.java | 6 +----- .../me/storage/BasicCellInventoryHandler.java | 10 ++++++++++ .../appeng/me/storage/MEInventoryHandler.java | 15 ++++++++++++--- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java index 9d2ad43f3ab..d1be586ab6d 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java @@ -218,11 +218,7 @@ public void detectAndSendChanges() { IAEItemStack m = null; if (c != null && this.result.isSimulation()) { m = o.copy(); - if (items.getStorageList().findPrecise(o) != null) { - o = items.extractItems(o, Actionable.SIMULATE, this.getActionSource()); - } else { - o = null; - } + o = items.extractItems(o, Actionable.SIMULATE, this.getActionSource()); if (o == null) { o = m.copy(); diff --git a/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java b/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java index 78022d7651a..1f08d5c8d4d 100644 --- a/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java +++ b/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java @@ -134,4 +134,14 @@ public IncludeExclude getIncludeExcludeMode() { NBTTagCompound openNbtData() { return Platform.openNbtData(this.getCellInv().getItemStack()); } + + @Override + protected boolean canExtract(T request) { + return this.hasReadAccess(); + } + + @Override + protected boolean shouldItemBeAvailable(T request) { + return this.hasReadAccess(); + } } diff --git a/src/main/java/appeng/me/storage/MEInventoryHandler.java b/src/main/java/appeng/me/storage/MEInventoryHandler.java index 9d542218cae..3b93680bdc0 100644 --- a/src/main/java/appeng/me/storage/MEInventoryHandler.java +++ b/src/main/java/appeng/me/storage/MEInventoryHandler.java @@ -43,6 +43,15 @@ public class MEInventoryHandler> implements IMEInventoryHa private IPartitionList myPartitionList; private AccessRestriction cachedAccessRestriction; + + protected final boolean hasReadAccess() { + return hasReadAccess; + } + + protected final boolean hasWriteAccess() { + return hasWriteAccess; + } + private boolean hasReadAccess; private boolean hasWriteAccess; private boolean isSticky; @@ -195,11 +204,11 @@ public void setSticky(boolean isSticky) { } protected boolean canExtract(T request) { - return this.hasReadAccess; + return this.hasReadAccess && this.passesBlackOrWhitelist(request); } - private boolean shouldItemBeAvailable(T t) { - return this.hasReadAccess && this.passesBlackOrWhitelist(t); + protected boolean shouldItemBeAvailable(T request) { + return this.hasReadAccess && this.passesBlackOrWhitelist(request); } public boolean passesBlackOrWhitelist(T input) {