Skip to content

Commit 454c693

Browse files
Add sanity checks to prevent recipe fill from deleting items (#1125)
* Add sanity checks to prevent recipe fill from deleting items * Fix spacing to comply with code style in FillRecipeC2SPacket
1 parent 45fe563 commit 454c693

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

xplat/src/main/java/dev/emi/emi/network/FillRecipeC2SPacket.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,17 @@ public void apply(PlayerEntity player) {
137137
} else {
138138
Slot s = crafting.get(i);
139139
if (s != null && s.canInsert(stack) && stack.getCount() <= s.getMaxItemCount() && stack.getCount() <= stack.getMaxCount()) {
140+
if (!s.getStack().isEmpty()) { // Make sure we don't accidentally delete any items that could have been placed in this slot
141+
if (s.canTakeItems(player)) {
142+
ItemStack taken = s.getStack();
143+
rubble.add(taken.copy());
144+
s.setStack(ItemStack.EMPTY);
145+
s.onTakeItem(player, taken);
146+
} else {
147+
player.getInventory().offerOrDrop(stack);
148+
continue;
149+
}
150+
}
140151
s.setStack(stack);
141152
} else {
142153
player.getInventory().offerOrDrop(stack);

0 commit comments

Comments
 (0)