AppliedEnergistics / Applied-Energistics-2

A Minecraft Mod about Matter, Energy and using them to conquer the world..
https://appliedenergistics.github.io/
Other
1.45k stars 668 forks source link

Dupe anyitems with ME Drive #2276

Closed linkinkov closed 7 years ago

linkinkov commented 8 years ago

Forge version: 1614 AE2 version: rv2 stable and last rv3 beta

I can post video or description of dupe, but need email or something else, for private post.

vallard192 commented 8 years ago

If you're not interesting in sharing the details here, and it's not related to the other open dupe tickets, then it might be easiest for you to get on IRC and share it with devs there.

On Wed, May 11, 2016 at 3:40 PM Oleg notifications@github.com wrote:

Forge version: 1614 AE2 version: rv2 stable and last rv3 beta

I can post video or description of dupe, but need email or something else, for private post.

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/2276

linkinkov commented 8 years ago

https://www.youtube.com/watch?v=uCWCxwMPZzQ&feature=youtu.be video, please mute the sound, because they speak in russian. To dupe need 2 players. You can see that first player lets see terminal, second player disconect connections of cables. Gui of the terminal dont closing for first player then second players disconect cables. First player wait until second take to inventory all storage cells and take from terminal gui all item that he want. Then storage cell come back into ME drive and connect cables all item in cells dont change.

Sorry for my English

yueh commented 8 years ago

Cannot reproduce with AE2 itself.

Please try it without any bukkit fork and maybe even check for conflicts with other mods.

linkinkov commented 8 years ago

I am testing on vanilla too, without other mods, then 1st player open the terminal and second disconect by remove the cables, gui dont close.

mindforger commented 8 years ago

without other mods ... with only forge ? no cauldron or kcauldron or anything?

linkinkov commented 8 years ago

yes, game in single with open local connections

mindforger commented 8 years ago

sorry i forgot to ask: also reproduceable with rv3.beta build 6?

linkinkov commented 8 years ago

Dont test beta build 6, but test beta build 5.

BlayzerQ commented 8 years ago

I confirm. The player who opened the inventory, the inventory is not updated after a power failure.

linkinkov commented 8 years ago

Also i think the main problem in this dupe - Energy Acceptor

XFactHD commented 8 years ago

Why should the energy acceptor be the cause?

itskun commented 8 years ago

I confirm. 1) Working dupe, video https://youtu.be/uYg_c-7ppdM with some differencies! Energy acceptor is not main problem, because dupe works completely across all the ME network, regardless energy acceptor. It is necessary to make the interface of the ME terminal was closed, when there is no power. A terminal is not only closed but also allows to put items in a network, even when no ME drive for a long time, and allows you to store an unlimited number of items to the server is restarted. sorry for bad english).

2)working dupe https://youtu.be/M4wWRcnDj0s. Interface closes when no power, but when me drive change to cable, you will be able to enter me interface and use inventory of me drive, can put and take items!

BlayzerQ commented 8 years ago

This work on last build.

brovinnick commented 8 years ago

Confirm working on rv3 beta 6. When placing any wire instead of broken ME Drive, while second is looking into terminal, it will get all information from drive and work as it. Dropped storage cell saves information too.

yueh commented 8 years ago

As long as nobody can provide a detailed description on how to reproduce it with only AE2 and/or any conflicting mod, I consider it a bukkit issue as I am unable to reproduce it with a normal forge instance. Neither with a dedicated server nor a shared lan world.

BlayzerQ commented 8 years ago

Dupe required two players. Only one - not work!

linkinkov commented 8 years ago

@yueh why you close issue?

bookerthegeek commented 8 years ago

@linkinkov He closed it because nobody has given him step by step instructions on how to do this, on a forge based server, that is not a video.

linkinkov commented 8 years ago

@bookerthegeek https://www.youtube.com/watch?v=mUzHMFEH5pw&feature=youtu.be step by step

bookerthegeek commented 8 years ago

Did you see the part about not a video?

linkinkov commented 8 years ago

@bookerthegeek video have a part about

BlayzerQ commented 8 years ago

The first player to open the terminal, and put in items The second player turns off the power of terminal The first player picks up items (Terminal for it continues to operate) The second player take all cards from ME Drive The second player connects the power of terminal Things remained in the terminal and things are the first player in the inventory (or drop) The second player put cards to ME Drive Done. http://ssmaker.ru/c473e59d.png http://ssmaker.ru/cf563450.png

itskun commented 8 years ago

This dupe is not bukkit issue, it easily reproduces in single with TE, or two players in multiplayer.

bookerthegeek commented 8 years ago

Thank you for the steps. I'll test tonight.

yueh commented 8 years ago

@bookerthegeek This will not help you at all. It is the same thing I have already tested in a couple of different version and there is only a tiny bug, that the display list will not be correctly updated once an ME Drive was removed from the network. But it still needs the terminal to be connected to the network and it is impossible to dupe with it as the list for the terminals is completely different from any inventory and extracting an item will only work should the tile entity for this inventory still exist. Except should someone use pick block, but that is already duping on purpose.

To be able to extract anything from a drive, it still has to linger around as tile entity (or the cable connecting them). Therefore something must influence the normal handling of them. As they are still unable to provide any useful information like used mods, etc. Thus I simply cannot trust them it as valid report. Like they claim that they did not use other mods, but also claim that the energy acceptor is the issue. Which requires some other mods to be present, otherwise it is non functional. Then they do not even state which TE version they are using. As I do not know the stance of TE/cofh in regards to bukkit, I would also not be suprised should the use some patched versions of TE, cofhcore or (or any other mod). Which would not be something new for any bukkit fork.

BlayzerQ commented 8 years ago

We dough with both modes, and without mods. Always standing alone IC2. We are on the vanilla dough, the dough on a different server cores. Tests as the energy TE, and IC. DUP worked in all cases.

fhntv24 commented 8 years ago

As a proof: ==> https://www.youtube.com/watch?v=uYg_c-7ppdM&feature=youtu.be <== That was in Curse mod pack, and it works. We was using Material Energy^Natural Capital. I also checked this in FTB Infinity evolvded, and it worked too.

Easy step by step ( IMHO ) :

  1. Build AE system, and put ME drive BETWEN (!!! IMPORTANT !!!) ME terminal & controller ( or energy acceptor ).
  2. Someone other MUST open ME Terminal
  3. Break ME drive and put cable where it was. ME terminal MUST BE OUT OF NETWORK, so it must create its own grid.
  4. ???
  5. PROFIT

This works even with creative cell, and again: me terminal must create its own grid after ME drive destruction, and AFTER that you can power it how you want, easyest way is just to connect it to same grid where it was before

bookerthegeek commented 8 years ago

@yueh I hate to say this But I can reproduce in vanilla with only AE2 Installed. Screenshots incoming.

Also... @BlayzerQ Wrong, You can do this single player. @linkinkov These are instructions. Learn please. NOT a video, but step by step guide, barney style. (luv you yueh) @fhntv24 Good try, but needs to be done in a clean enviroment. In this case ONLY AE2. It makes it easier for the devs to reproduce and debug.

bookerthegeek commented 8 years ago

This is the Yellow Network and we will be considering this the Main network. Notice the ME terminals on both ends of the network. This is important as it does not work otherwise. http://goo.gl/QjTioH

Next I added the Portion to Remove the ME Drive and replace it with a cable. This is the Purple Network. http://goo.gl/glyClI

The dropper on the right is to place a yellow cable down to reconnect the network. The two panels on the left, one is a formation plane set to yellow cable, and one is an annihilation plane on a toggle bus. Redstone is so the cable is placed after the annihilation plane is no longer powered. Note block informs me when Completed

Before the Dupe http://goo.gl/GZxb3s

After The Dupe http://goo.gl/GRXWn1

Also, for sake of completeness.... appliedenergistics2-rv3-beta-6.jar forge-1.7.10-10.13.4.1614-1.7.10

World Download https://www.dropbox.com/s/q0k8ggxshuqixr9/New%20World.7z?dl=0

yueh commented 8 years ago

Seems like your report is valid @bookerthegeek. But I am not certain that these are ultimately related. You replace the drive directly with a cable to prevent the network from actually changing. While other one completely disconnects the terminal from the network, which requires that the actual tile entity for the drive is not destroyed or changed (to trigger a repathing). Therefore the drives may still be around somewhere, which is a completely different issue and probably cannot be resolved by us (how should we know that a tile entity should be destroyed, if it actually prevents signaling it?)

Enforcing to post a MENetworkCellArrayUpdate once a drive is removed might solve it. But then I have not found time in the last 2 months to even install eclipse + setup a dev environment for AE... Unlikely that it will change in the near future. And there are a bunch of conditions which needs further testing.

BlayzerQ commented 8 years ago

We have already set for themselves, all fixed. For the author: NetworkInventoryHandler.class GridStorageCache.class

yueh commented 8 years ago

Just announcing which files you modified is not enough, you have to make the changes publicly available for any user. Otherwise it would be a license violation.

Also fixing it at this level is most likely not fixing the issue, just hiding it. Both classes only provide a cache containing all possible inventories like cells. Therefore either it only hides them somehow and they drives still linger around actually and just wait for another way to exploit it. But if this is something you want... Or it has a good chance of being a horrible performance issue.

ArcasCZ commented 8 years ago

Tested on our server and it doesn't work - when someone wrench that cable, terminal closes. Also, if you have clicked that items, it will drop on floor and when you connect cable, it will disappear from disk. So you still have same items, no duplication, no disappearing.

cyber01 commented 8 years ago

Dupe works if AE uses the energy via the energy converter from other mods. all is well with AE energy.

BlayzerQ commented 8 years ago

cyber01, Nope. Only AE: http://i.imgur.com/UHWl5S7.jpg http://i.imgur.com/NsBKTt0.jpg http://i.imgur.com/kI1u3xD.jpg

bookerthegeek commented 8 years ago

Would it be possible to just kick players from the interface when their is a physical change to the network?

linkinkov commented 8 years ago

Its a best idea

leagris commented 8 years ago

What about sub betwork? What if network A access network B though a ME terminal. It would need to be disconnected on B topology change. But then Me toggle bus could cause a cascade of disconnect on all attached networks. Likely very laggy.

bookerthegeek commented 8 years ago

Does not work across subnets.

linkinkov commented 8 years ago

any news?

myeasyhash commented 8 years ago

fix here - link to potentially broken stuff removed

bookerthegeek commented 8 years ago

@yueh Do you mind if I make a build for this so we can test on our server?

myeasyhash commented 8 years ago

on my server this is work.

bookerthegeek commented 8 years ago

And that is great that it does. I would still like to test this on a larger server.

myeasyhash commented 8 years ago

test it, then write about the results )

cyber01 commented 8 years ago

this fix works, only there is a problem: if you add / remove any block IU network, disappear all the resources in the ME network and need to pull out and reinsert the storage cell

bookerthegeek commented 8 years ago

See, that would be an issue. What we need is for on the physical network updating, to close out all open gui's. The same as if another player breaks a crafting table while your in it.

myeasyhash commented 8 years ago

==>this fix works, only there is a problem: if you add / remove any block IU network, disappear all the resources in the ME network and need to pull out and reinsert the storage cell<==

i don't have that problem. I am using AppliedEnergistics2-rv2-stable-10, and AppliedEnergistics2-rv3-beta-6 i don't test!

kaziu687 commented 8 years ago

@cyber01 the same issue present on my server (rv3-beta-6). Fixed it by adding this.cellUpdate(null); after this.getItemInventory().getStorageList().resetStatus();

yueh commented 8 years ago

Calling IItemList.resetStatus() is extremely stupid and does not solve anything. Except cause more issues as it might not repopulate the grid at all until something changes again. Which also includes any available crafting pattern.

Similarly closing the GUI is also a bad idea. The visible items are only cached and not related to any actual inventory operation. This means due to whatever reason the disks are still dangling and can be potentially access through other means. Say buses, AE2 AddOns etc. It would just be a Quick'n'Dirty hack to hide the issue until another way appears. But as said, if this is intended...