Inventory Essentials (Fabric Edition)

Inventory Essentials (Fabric Edition)

424k Downloads

Bulk Transfer All To Quark Backpack Deletes Items

ChloeDawn opened this issue ยท 3 comments

commented

Minecraft Version

1.20.1 (LTS)

Mod Loader

NeoForge

Mod Loader Version

47.1.99

Mod Version

8.2.1

Balm Version

7.2.1

Describe the Issue

When bulk transferring from the player's inventory to the Quark Oddities backpack inventory, all items are deleted.
There are no messages in the log when this occurs, but I have included it regardless for additional context.

Steps to reproduce:

  • Equip backpack item in survival mode.
  • Bulk transfer items from inventory slots.
  • Items are deleted.

Expected behavior:

  • Items to be transfered from inventory to backpack, as per quick transfer behavior.

Screen recording:

Screen recording of issue

Logs

https://mclo.gs/hPgCsom

Do you use any performance-enhancing mods (e.g. OptiFine) or custom server distributions (e.g. SpongeForge)?

No response

commented

Inventory Essentials only simulates slot clicks here (especially when used client-only, where it has no authority to change slots directly).

Since the issue occurs even when just sending normal slot clicks to the server, this is likely a bug inside Quark's backpack and can not be fixed here. Best I could do is prevent Inventory Essentials from acting on the backpack screen at all, but it might be worth reporting to Quark since it appears that clients can delete items through forged slot click packets on their backpack.

commented

What are the reproduction steps without Inventory Essentials so I have something for the report?

commented

Reproducible by running

for (Slot slot : menu.slots) {
    if (slot.mayPickup(Minecraft.getInstance().player) && slot.container instanceof Inventory) {
        Minecraft.getInstance().gameMode.handleInventoryMouseClick(menu.containerId, slot.index, 0, ClickType.QUICK_MOVE, Minecraft.getInstance().player);
    }
}

on the client while backpack menu is open. The code simulates a shift-click & sends a click packet on every inventory slot.