aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-07-22 21:16:27 +0900
committershedaniel <daniel@shedaniel.me>2024-07-22 21:16:27 +0900
commitd5427ca36ff2c9e9db85603120c988c5a02de6e4 (patch)
tree3aeb1c9562829ec381026665c8f8cd3047429d8d /runtime/src/main/java/me/shedaniel
parentb171391cedbf0a0ac820dff075495c9a07045760 (diff)
downloadRoughlyEnoughItems-7.x-1.18.tar.gz
RoughlyEnoughItems-7.x-1.18.tar.bz2
RoughlyEnoughItems-7.x-1.18.zip
Check slots before modification7.x-1.18
Diffstat (limited to 'runtime/src/main/java/me/shedaniel')
-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 bb195a8f5..f8cf3a2ec 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
@@ -128,6 +128,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 {
@@ -161,13 +165,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;
}