diff options
| author | shedaniel <daniel@shedaniel.me> | 2024-07-22 20:42:10 +0900 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2024-07-22 20:42:10 +0900 |
| commit | 3315e4d0560ab3349d8a0513081f91e6a354f181 (patch) | |
| tree | 9aae5d6324866e5b736b47ec9baeb3135ae599bc /runtime/src/main/java/me | |
| parent | 3444fd3bb74cc6f9beb47b89c065849fe11302f5 (diff) | |
| download | RoughlyEnoughItems-6.x-1.17.tar.gz RoughlyEnoughItems-6.x-1.17.tar.bz2 RoughlyEnoughItems-6.x-1.17.zip | |
Check slots before modification6.x-1.17
Diffstat (limited to 'runtime/src/main/java/me')
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java index 9555ac4e7..67311bc8c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java @@ -134,6 +134,10 @@ public class InputSlotCrafter<T extends AbstractContainerMenu, C extends Contain } takenStack.setCount(1); + if (!slot.canPlace(takenStack)) { + return; + } + if (slot.getItemStack().isEmpty()) { slot.setItemStack(takenStack); } else { @@ -167,13 +171,22 @@ public class InputSlotCrafter<T extends AbstractContainerMenu, C extends Contain @Nullable public SlotAccessor takeInventoryStack(ItemStack itemStack) { + boolean rejectedModification = false; for (SlotAccessor inventoryStack : inventoryStacks) { ItemStack itemStack1 = inventoryStack.getItemStack(); if (!itemStack1.isEmpty() && areItemsEqual(itemStack, itemStack1) && !itemStack1.isDamaged() && !itemStack1.isEnchanted() && !itemStack1.hasCustomHoverName()) { - return inventoryStack; + if (!inventoryStack.allowModification(player)) { + rejectedModification = true; + } else { + return inventoryStack; + } } } + if (rejectedModification) { + throw new IllegalStateException("Unable to take item from inventory due to slot not allowing modification! Item requested: " + itemStack); + } + return null; } |
