From 265a326d2155bd825cc73ba61b58936092aa697c Mon Sep 17 00:00:00 2001 From: Matthias Mann Date: Thu, 4 Jun 2026 08:40:28 +0200 Subject: [PATCH] fix #37 by providing a larger internalPatternInventory --- .../ExpandedPatternBufferPartMachine.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/net/neganote/gtutilities/integration/ae2/machine/ExpandedPatternBufferPartMachine.java b/src/main/java/net/neganote/gtutilities/integration/ae2/machine/ExpandedPatternBufferPartMachine.java index bbf7d36..04b91fc 100644 --- a/src/main/java/net/neganote/gtutilities/integration/ae2/machine/ExpandedPatternBufferPartMachine.java +++ b/src/main/java/net/neganote/gtutilities/integration/ae2/machine/ExpandedPatternBufferPartMachine.java @@ -15,6 +15,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; +import appeng.api.inventories.InternalInventory; import appeng.crafting.pattern.EncodedPatternItem; import java.lang.reflect.Field; @@ -46,6 +47,28 @@ public ExpandedPatternBufferPartMachine(IMachineBlockEntity info) { recipeHandlerField.setAccessible(true); recipeHandlerField.set(this, new InternalSlotRecipeHandler(this, newInternalInv)); + Field internalPatternInventoryField = MEPatternBufferPartMachine.class + .getDeclaredField("internalPatternInventory"); + internalPatternInventoryField.setAccessible(true); + internalPatternInventoryField.set(this, new InternalInventory() { + + @Override + public int size() { + return EXPANDED_MAX_PATTERN_COUNT; + } + + @Override + public ItemStack getStackInSlot(int slotIndex) { + return getPatternInventory().getStackInSlot(slotIndex); + } + + @Override + public void setItemDirect(int slotIndex, ItemStack stack) { + getPatternInventory().setStackInSlot(slotIndex, stack); + getPatternInventory().onContentsChanged(slotIndex); + callPrivatePatternChange(slotIndex); + } + }); } catch (Exception e) { throw new RuntimeException("FATAL: Failed to initialize Expanded Pattern Buffer via reflection.", e); }