Ender IO Machines

Ender IO Machines

1M Downloads

Item Conduits fail to honor can extract from slot with Reconstructor

brisingraerowing opened this issue ยท 5 comments

commented

Issue Description:

Item Conduits cause a dupe bug with the Reconstructor mod, as they will always extract an item even if the item isn't fully repaired.

Ref: smbarbour/Reconstructor#7

What happens:

Items get duped every tick

What you expected to happen:

No duping

Steps to reproduce:

  1. Place and power a Reconstructor
  2. Put an extracting item conduit on the bottom and connect it to another inventory
  3. Put a damaged item in the Reconstructor.
  4. Observe item getting duped

Affected Versions (Do not use "latest"):

  • EnderIO: 5.2.59
  • EnderCore: 0.5.76
  • Minecraft: 1.12.2
  • Forge: 14.23.5.2854
  • SpongeForge? no
  • Optifine? no
  • Single Player (not tested on server)

Your most recent log file where the issue was present:

Logs currently unavailable. I'll get one as soon as I can.

commented

see the original issue

commented

The point is that the actual result of the extract should be used to insert into the destination instead of the result of the simulation. The Forge InvWrapper does not use the same calls for simulation and the actual extract. This is correctly handled by every other item transport system.

https://github.com/MinecraftForge/MinecraftForge/blob/1.12.x/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java#L160-L193
In the simulation, it copies the stack. In the actual extract, it calls the code to extract the item (which is where the code that checks if the item is extractable was located). The code in EnderIO even acknowledges that there is a dupe issue (by checking for and logging the dupes).

This is an issue. Whether or not you choose to view it as a bug, is irrelevant. This has been mitigated in my own mod. Other mods may reflect the same issue. You can choose to correct the issue by using the result of the extract instead of the simulation, or you can choose to continue to allow the dupes and simply log them.

commented

The issue is that there are many mods that lie about the insertion, but your's the first one with issues on the extraction. Doing it the other way round would men we'd void items regularly, e.g. when inserting into a Drawer Controller.