Skip to content

Commit

Permalink
fix: fix serum duplication bug with Injector
Browse files Browse the repository at this point in the history
  • Loading branch information
Elenterius committed Oct 14, 2023
1 parent c6aa30e commit 1137763
Showing 1 changed file with 8 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,8 @@ public void onServerReceiveKeyPress(ItemStack stack, ServerLevel level, Player p
* replace contents of injector inventory with new item from player inventory
*/
private void setInventory(ItemStack injector, Player player, int slotIndex) {
ItemStack foundStack = player.getInventory().getItem(slotIndex);
final Inventory playerInventory = player.getInventory();
final ItemStack foundStack = playerInventory.getItem(slotIndex);

Item item = foundStack.getItem();
if (!(item instanceof SerumContainer)) return;
Expand All @@ -180,24 +181,23 @@ private void setInventory(ItemStack injector, Player player, int slotIndex) {
}

ItemStack remainder = handler.insertItem(foundStack, false);
player.getInventory().setItem(slotIndex, remainder);
playerInventory.setItem(slotIndex, remainder);

if (remainder.isEmpty() && !handler.isFull()) {
Inventory inventory = player.getInventory();
int slots = inventory.getContainerSize();
int slots = playerInventory.getContainerSize();
for (int idx = 0; idx < slots; idx++) {
ItemStack stack = inventory.getItem(idx);
ItemStack stack = playerInventory.getItem(idx);
if (ItemHandlerHelper.canItemStacksStack(stack, handler.getStack())) {
remainder = handler.insertItem(foundStack, false);
player.getInventory().setItem(idx, remainder);
remainder = handler.insertItem(stack, false);
playerInventory.setItem(idx, remainder);
if (!remainder.isEmpty()) break;
}
}
}

//eject old stuff
if (!oldStack.isEmpty()) {
player.getInventory().placeItemBackInInventory(oldStack);
playerInventory.placeItemBackInInventory(oldStack);
}
});
}
Expand Down

0 comments on commit 1137763

Please sign in to comment.