View Issue Details

IDProjectCategoryView StatusLast Update
0000203Industrial-Craft²general / otherpublic2013-09-22 10:21
Reportercreodor Assigned ToThunderdark  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionno change required 
OSWindows 7 
Summary0000203: Item Duplication and Nested Bags
DescriptionA player in a community I run a server for found these two issues and we further researched them. Upon discovering the extent of the issues, I gathered information and submitted to the Forge forums. I recieved a flippant “won’t fix” answer. As such, here I am. Please fix this instead of ignoring me.

As a specific note for IC2, there are only a couple of items in IC2 itself that can cause this (Cropnalyzer is what I tested against), but it is still an issue and needs to be addressed.

For detailed information and testing, please visit this link on the Forge forums:
http://www.minecraftforge.net/forum/index.php/topic,4282.0.html
Steps To ReproduceItem Duplication:

Item duplication is depressingly easy and reliable, once you understand how to do it. Follow these steps:
1. Get any portable storage item with a custom interface (IC2 Cropnalyzer, Forestry Letter, etc (and again, NOT mod specific!)).
2. Get an item to duplicate (I tested with diamond blocks, because hey why not).
3. Open the storage item’s interface.
4. Place the item to be duplicated in one of the storage item’s interface slots.
5. Close the inventory item’s interface.
6. Open the inventory item’s interface again.
7. Select the item to be duplicated and WITHOUT PLACING IT DOWN ANYWHERE close Minecraft.
8. Relaunch Minecraft and when you get back into the world or server, you’ll see whatever item you were working with in front of you. Pick it up. Open the storage item you were duplicating with. There will be another copy of the item in there.



Nested Bags:

Nesting bags is even easier than item duplication. You just take two portable storage items and put one inside the other. There seems to be no checking whatsoever to see if this should or shouldn’t be allowed (and it really shouldn’t, that’s just silly). By itself this is just a rather silly way to expand the inventory exponentially (a rather nasty bug in itself, but probably not something most would bother with, due to the increased human memory costs and number of clicks it creates). But when combined with the Item Duplication bug above, you can then start to duplicate (for example) letters that are full of Diamond Block stacks and Quantum Armor. Suddenly Item Duplication is not just reliable and fairly easy, but also the time and hassle of restarting Minecraft is greatly mitigated by the sheer quantity of items you can duplicate at once.



Infinite Item Duplication via Nested Bags:

This is where things get really nasty. I decided I would test out what happens when you duplicate nested storage items. Nesting to the first level did nothing special. Nesting to the second level…that’s where things get interesting.
The setup:
I took a letter (again, this is not mod dependent, Forestry just has the items with the most freedom as far as what is allowed in and are thus easiest to test with) and placed two stacks of diamond blocks in it. I then placed this letter inside of a canvas bag. I then placed that canvas bag inside of another letter.
A quick diagram, topmost layer is the ‘outer’ layer, bottom is the ‘inner’:

Letter
Canvas Bag
Letter
2×64 Diamond Block

I opened and closed the ‘outer’ most item (Letter) in order to save its state, then selected the canvas bag inside of it and closed out of Minecraft. When I reopened Minecraft, as expected, there was a Canvas Bag on the ground in front of me. I picked that item up, then checked the letter. Inside of it, as expected, another Canvas Bag. I then opened each Bag in turn, and pulled out the inner Letter. Both letter duplicates had their 2×64 Diamond Block stacks. I pulled the Blocks out of first one, then the other. But when I closed the letter again, I noticed that it was ‘large’ as if it had stuff in it still. So I opened it again. 2 more Block stacks. This is repeatable infinitely.
TagsNo tags attached.
Minecraft Version

Activities

bobcat64

2012-12-25 00:19

reporter   ~0000566

This does seem more like a Forge issue with having items nesting items. Though I'm not sure what they can do. Best IC2 can do is only allow energy storage items (batteries/crystals) and seed bags. That will minimize the problem as those would be the only items that could be duplicated.

Maybe if the container object can save its state whenever you pick up an item, that way when you close minecraft it doesn't have the item in it and you just pick up the one you had in your 'hand' / cursor.

creodor

2012-12-27 16:37

reporter   ~0000578

Yeah, I'm not expecting IC2 to be able to do much, since there are not many IC2 items involved. But your suggestion to make sure they only allow those specific items seems good to me; it wouldn't remove the problem, but at least would stop it being as big, and it also probably wouldn't be a big burden for Alblaka to change.

Having it save its state more often would be good, though potentially taxing for the system. I'm not sure where the happy medium would be, but it's not where it is. Sadly the Forge devs have declared this to be not their problem and are now rubbing it in as well.

I also wanted to thank you for being the most rational response I've had, and the only one that wasn't at least somewhat passive aggressive.

narc

2012-12-28 11:34

reporter   ~0000582

@creodor: Passive aggressive? I just don't see any passive-aggressiveness in "mods need to be aware that a [user's] actions in [an inventory] can cease at anytime."

Personally, all I see is LexManos stating outright "we can't fix this from Forge, it's the wrong place for it".

Thunderdark

2013-09-22 10:21

viewer   ~0001505

clean up Manits Bug Tracker..close automatic all Bug report > 6 months if the error still exists in the current version > IC2 2.0.217 please report new Thx.

Issue History

Date Modified Username Field Change
2012-12-24 03:43 creodor New Issue
2012-12-25 00:19 bobcat64 Note Added: 0000566
2012-12-27 16:37 creodor Note Added: 0000578
2012-12-28 11:34 narc Note Added: 0000582
2013-09-22 10:21 Thunderdark Note Added: 0001505
2013-09-22 10:21 Thunderdark Status new => closed
2013-09-22 10:21 Thunderdark Assigned To => Thunderdark
2013-09-22 10:21 Thunderdark Resolution open => no change required