maruohon / enderutilities

A Minecraft mod that adds various (mostly "ender-themed") blocks and items
GNU Lesser General Public License v3.0
27 stars 15 forks source link

Intenal server crashed #53

Closed forestbat closed 7 years ago

forestbat commented 7 years ago

Like #31, I put some full RS’s disks in the handy chest,and the internal server crashed I come back to the main menu。 Now once I open the handy chest(even if there is not a card in it) the internal server will crash。 There is a part of log:http://paste.ubuntu.com/25175758/

maruohon commented 7 years ago

Yes, nesting storage items/blocks is bad. You end up with very large NBT data structures, and the first thing where that will cause issues, is the network code when syncing the slots.

Based on that log, there is a card in the chest, otherwise it wouldn't try to sync that large amount of data for a slot.

forestbat commented 7 years ago

In fact I have damaged the chest——no card in it,but when I enter the chest it crashed。 No any other solutions except deleting the card or using backups? Will a coremod solve the problem? And in a handy chest,4 cards is represent of 4 chests and we must switch them manually——will you make an integration for other monitor mods such as rftools or practical logistics to get all items in handy chest?

maruohon commented 7 years ago

What do you mean by damaged?

If there actually is a card in the chest, then you can just break the chest and the cards will pop out. But be careful about that, because if you then pick up the card from the ground that has too much data on it, then you will get kicked out when that card in the player inventory is synced to the client!

The only way to solve this (assuming you mean getting your items back), is to use an NBT editor, like NBTExplorer, to manually move some NBT-heavy items out of the memory card, so basically moving the RS disks out. That would probably be easiest done in the player inventory, but it can be done in the world too, if you know the exact block coordinates of the chest. If you want to attempt this, then make a full backup first before starting the operation!

If you don't know how to do this, then I can attempt to do it. I would need to know the exact location of the chest (open the F3 debug screen, and get the "Looking at" coordinates when looking at the chest). Also place an empty vanilla chest nearby (for moving the RS disk into in NBTExplorer), preferably place it inside the same chunk (F3 + G to show the chunk boundaries), and also give those coordinates. Then upload somewhere the region file that contains the chests. You can find out which region it is, based on the chest coordinates, using this: https://dinnerbone.com/minecraft/tools/coordinates/ . If this is in the overworld, then the region file is inside worldname/region/, otherwise it's inside worldname/DIMx/region/, where x is the dimension ID.

forestbat commented 7 years ago

I solved the problem。 Now can you answer me will you make an integration for other monitor mods such as rftools or practical logistics to get all items in handy chest?

maruohon commented 7 years ago

No, I won't change the way the chest works. It would both complicate the code quite a bit, and also make the chests even more CPU intensive than what they already are. This has been discussed in further detail in #29 and #43.

Also I'm curious, how did you solve the problem?

forestbat commented 7 years ago

As you saying,I used NBTexplorer to solve this,although I lost some items I can receive this,thank you。