StorageDrawers icon indicating copy to clipboard operation
StorageDrawers copied to clipboard

Duplication/Conversion Bug: Compacting Drawers

Open Danekjovax opened this issue 2 years ago • 11 comments

MC 1.16.5 Forge 36.2.31 StorageDrawers-1.16.3-8.5.1 ImmersiveEngineering-1.16.5-5.0.7-143

Seems the previous dupe fix got "some" of the problem I was observing, but not all of it. May be a mod interaction issue at this point. I used the following steps to reproduce:

  1. Get a compacting drawer. Place it down.

  2. Get a Quantify Key and activate the counter on the compacting drawer.

  3. Get 1 bock and 1 ingot of Immersive Engineering Steel in your hotbar. Also grab a diamond and put it in your hotbar.

  4. Place the Block of steel into the compacting drawer. (Notice that the ingot slot isn't populating - this is an indication that this block can be duped. Trying to place an ingot in it at this point won't work.) image

  5. Take the Block out of the drawer then place the ingot in. (Note the correct counts) Pull out the ingot.

  6. Place the block back in. (Notice the missing ingot slot again.) Now, pull the block out and then place it back in a second time. (Note the identical counts!) image

  7. Place the ingot in. Note that the ingot/block numbers are incrementing 1:1. image

  8. Pull 1 block out, convert it to 9 ingots, then place all ingots into the drawer. Note the same incrementing. image

You get the pattern at this point that this can be a duplication exploit. However, there's one other thing I saw while testing:

  1. Pull out all Steel ingots/blocks. The drawer should revert to blank state.
  2. Place the diamond into the drawer and then pull it back out. (this should show proper behavior).
  3. Now, place the blocks of Steel back into the drawer. (Note: things appear like they did in step 3.)
  4. Pull all the Steel blocks out and place them back in a second time. Note that the Blocks and diamonds are now showing in the display, with the identical counts. image

Placing any diamonds into the drawer at this point will result in a matching increment of Steel blocks.

You see where a player could go with this?
image

As an extra note, using nuggets can also cause the same conversion/duplication issue between ingots/blocks.

Danekjovax avatar Mar 19 '22 16:03 Danekjovax

This is still unresolved and causing issues in my pack. If this could be addressed before 1.16 support is dropped, that would be great. Thanks!

Elfinlocks avatar Apr 22 '22 15:04 Elfinlocks

Is this issue exclusive to 1.16? Couldn't reproduce on latest 1.18 versions of SD/IE.

Quinteger avatar Apr 22 '22 16:04 Quinteger

I discovered this issue as well in 1.18 using mod version 10.2.0. You can reproduce it in fewer steps, and it can be used to convert any non-compressible item to any compressible item and vice versa, or any item to any other item if you use two steps.

How to reproduce:

  1. Place the compacting drawers
  2. Insert a compressible item, then remove it.
  3. Insert a non-compressible item, remove it, then replace it.

The non-compressible item will be at the top, and the compressible one will be at the bottom. You can add more of either and then take them out to duplicate.

Yappey avatar Apr 23 '22 05:04 Yappey

I also just realized it works using items that only compress once vs twice. image

Yappey avatar Apr 23 '22 05:04 Yappey

I see, managed to reproduce it in 1.18

Quinteger avatar Apr 23 '22 05:04 Quinteger

@Danekjovax @Elfinlocks I fixed the bug in this PR: https://github.com/jaquadro/StorageDrawers/pull/1017. If the issue is urgent and you don't want to wait for the release, you can try building the jar yourself.

Quinteger avatar Apr 24 '22 13:04 Quinteger

Excellent, thank you! For now we'll wait a little bit for the PR to be approved, as we've kept this one under wraps. ;)

Elfinlocks avatar Apr 24 '22 16:04 Elfinlocks

@Danekjovax @Elfinlocks I fixed the bug in this PR: #1017. If the issue is urgent and you don't want to wait for the release, you can try building the jar yourself.

Appreciate your reply. We'll await the release and test again.

Danekjovax avatar Apr 25 '22 01:04 Danekjovax

@Danekjovax @Elfinlocks A new 1.16 release was posted yesterday with the dupe fix and some performance imporvements, give it a try.

Quinteger avatar May 02 '22 06:05 Quinteger

@Quinteger What about 1.18? We've been patiently waiting, but having a dupe glitch on our server is scary.

SimonMeskens avatar May 26 '22 04:05 SimonMeskens

@SimonMeskens The fix was originally done in 1.18, 1.16 was just a backport. The next 1.18 release will have it included.

Quinteger avatar May 26 '22 04:05 Quinteger