Skip to content

Commit 6c209a9

Browse files
committed
fix: protect against bogus slot indices
slot 59 happens somehow? how?
1 parent 4baf4bc commit 6c209a9

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/main/java/dev/dfonline/codeclient/dev/overlay/ChestPeeker.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,12 @@ public boolean onReceivePacket(Packet<?> packet) {
120120
if (expectingItems && packet instanceof ScreenHandlerSlotUpdateS2CPacket slot) {
121121
var handler = CodeClient.MC.player.playerScreenHandler;
122122

123-
var removedItem = handler.getSlot(slot.getSlot()).getStack();
124-
net.sendPacket(new CreativeInventoryActionC2SPacket(slot.getSlot(), removedItem));
125-
CodeClient.MC.player.playerScreenHandler.setStackInSlot(slot.getSlot(), 0, removedItem);
123+
int slotIndex = slot.getSlot();
124+
if (slotIndex < 0 || slotIndex >= handler.slots.size()) return false;
125+
126+
var removedItem = handler.getSlot(slotIndex).getStack();
127+
net.sendPacket(new CreativeInventoryActionC2SPacket(slotIndex, removedItem));
128+
CodeClient.MC.player.playerScreenHandler.setStackInSlot(slotIndex, 0, removedItem);
126129

127130
DFItem item = DFItem.of(slot.getStack());
128131
ContainerComponent container = item.getContainer();

0 commit comments

Comments
 (0)