aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-07-20 18:39:18 +0900
committershedaniel <daniel@shedaniel.me>2024-07-20 18:40:38 +0900
commit2d7389aa03f9a6bad7b5e7b81456acb5f9d358e9 (patch)
tree436e12342250e26296166479c33902cd8e1ff713 /src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
parentdeb29135ec13b735f18695deb6ffccc49a74c9db (diff)
downloadRoughlyEnoughItems-4.x.tar.gz
RoughlyEnoughItems-4.x.tar.bz2
RoughlyEnoughItems-4.x.zip
Check slots before modification4.x
Diffstat (limited to 'src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java')
-rw-r--r--src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
index 4447256e2..ed7ffa2d9 100644
--- a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
+++ b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
@@ -106,6 +106,10 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
}
takenStack.setCount(1);
+ if (!slot.canPlace(takenStack)) {
+ return;
+ }
+
if (slot.getItemStack().isEmpty()) {
slot.setItemStack(takenStack);
} else {
@@ -158,13 +162,22 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
}
public int method_7371(ItemStack itemStack) {
+ boolean rejectedModification = false;
for (int i = 0; i < inventoryStacks.size(); i++) {
ItemStack itemStack1 = this.inventoryStacks.get(i).getItemStack();
if (!itemStack1.isEmpty() && areItemsEqual(itemStack, itemStack1) && !itemStack1.isDamaged() && !itemStack1.hasEnchantments() && !itemStack1.hasCustomName()) {
- return i;
+ if (!this.inventoryStacks.get(i).allowModification(player)) {
+ rejectedModification = true;
+ } else {
+ return i;
+ }
}
}
+ if (rejectedModification) {
+ throw new IllegalStateException("Unable to take item from inventory due to slot not allowing modification! Item requested: " + itemStack);
+ }
+
return -1;
}