aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-07-22 20:42:10 +0900
committershedaniel <daniel@shedaniel.me>2024-07-22 20:42:10 +0900
commit3315e4d0560ab3349d8a0513081f91e6a354f181 (patch)
tree9aae5d6324866e5b736b47ec9baeb3135ae599bc /runtime/src/main
parent3444fd3bb74cc6f9beb47b89c065849fe11302f5 (diff)
downloadRoughlyEnoughItems-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')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java15
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;
}