From 24ff8d5bd3a43b7d96d7d447f61eb35fff86fd81 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Fri, 27 Apr 2018 01:07:11 +0200 Subject: [PATCH] Empty patterns can no longer be inserted in the pattern result slot in the Pattern Grid with hoppers, fixes #1761 --- CHANGELOG.md | 1 + .../apiimpl/network/node/NetworkNodeGrid.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 167b798f4..56f7cf4d5 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### 1.5.34 - Allow crafters to be daisy-chained (tomKPZ) +- Empty patterns can no longer be inserted in the pattern result slot in the Pattern Grid with hoppers (raoulvdberge) ### 1.5.33 - Added Crafter Manager (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java index 837df8e26..d2f6290c5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java @@ -46,6 +46,7 @@ import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.InvWrapper; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; @@ -96,6 +97,21 @@ public class NetworkNodeGrid extends NetworkNode implements IGridNetworkAware { public int getSlotLimit(int slot) { return slot == 1 ? 1 : super.getSlotLimit(slot); } + + @Nonnull + @Override + public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { + // Allow in slot 0 + // Disallow in slot 1 + // Only allow in slot 1 when it isn't a blank pattern + // This makes it so that written patterns can be re-inserted in the slot to be overwritten again + // This makes it so that blank patterns can't be inserted through hoppers. + if (slot == 0 || stack.getTagCompound() != null) { + return super.insertItem(slot, stack, simulate); + } + + return stack; + } }; private List filters = new ArrayList<>(); private List tabs = new ArrayList<>();