Refined Storage

Refined Storage

77M Downloads

Blood Magic Living Armor (Boots and Leggings) can't be retrieved from Grid

choekstr opened this issue ยท 36 comments

commented

I put all my living armor from Blood Magic in refined storage and when I went to retrieve them I could only get the chestplate and helmet out and the boots and leggings do not allow me to remove them. I tried dragging, shift clicking, right clicking, searching first and then manually finding and nothing allows them to be removed.

Lastly, I tried an exporter with and without a conduit filter to attempt to extract them into a chest and it wouldn't let go of them that way either.

commented

Hi, which version are you on?

commented

I am running FTB Unstable which is currently on MC 1.10.0 which FTB team bundles RefinedStorage 0.8.5.

commented

Is the issue still present in 0.8.6?

commented

Yes it is still present. I can't retrieve my Blood Orb from BloodMagic, also my crystal from DeepResonance.
But I really like the new textures and blocks, especially the new solderer.

commented

In what storage medium are you storing your blood orb? Storage disks in disk drive?

commented

I have a 64k storage disk.
1

2

But I used 0.8.5 and upgraded with the same save to 0.8.6. So this might be why. I'll start a new save with 0.8.6 from start and report if it still happens.

commented

I am using 2 16k disks on a drive array. I'll update this weekend to 0.8.6 as well and see if that helps.

commented

Ok, I managed to reproduce the issue in a fresh save with 0.8.6.
Blood Orb worked for me this time but the armour (Helmet) still got stock and DeepResonance Crystal also got stuck in the 64k storage disk.

commented

Did you get the helmet straight out of the creative inventory or did you use it first?

commented

I was in a survival world and got the items with commands. I used the blood orb a few times and the helmet I put straight in the strorage.
But I just tested it with a used Helmet, still can't get it out of the grid.
3
All 3 are stuck.

commented

My items, boots and leggings, were obtained legit, if it helps. I just tried on 0.8.7 and the issue of the living armor still is in 0.8.7 and also all my deep resonance crystals are stuck in the crafting grid/storage and can't be retrieved as well.

FWIW, I am also playing Arisen 2 which is on 1.9.4 and so the Refined Storage 0.7.19 version does not have this issue with the crystal I just found. I can get it out no problem but I haven't started blood magic yet so can't comment on living armor being retrievable yet.

commented

Do you want the whole log?
Here are the relevant lines, when i tried to get the blood orb and a deepresonance crystal:

[11:54:39] [Server thread/INFO] [STDOUT]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.orb.@0 (grid extract flags = 4) [11:54:39] [Server thread/INFO] [STDOUT]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.orb.@0 with 1xitem.BloodMagic.orb.@0 (flags = 3) [11:54:39] [Server thread/INFO] [STDOUT]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {} [11:54:39] [Server thread/INFO] [STDOUT]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null [11:54:50] [Server thread/INFO] [STDOUT]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xtile.deepresonance.resonating_crystal@0 (grid extract flags = 4) [11:54:50] [Server thread/INFO] [STDOUT]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3) [11:54:50] [Server thread/INFO] [STDOUT]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:1.4112228f,strength:0.4626714f,glowing:0b,purity:6.228219f,infused:0,power:0.0f,version:2b}, r = {efficiency:1.4112228f,strength:0.4626714f,glowing:0b,purity:6.228219f,infused:0,power:0.0f,version:2b} [11:54:50] [Server thread/INFO] [STDOUT]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null

Here as .txt files:

Relevant Lines.txt

fml-client-latest.txt

commented

I just noticed this issue on our world also, a tad frustrating to have my crystals locked up in limbo.

commented

I upgraded to 0.8.9 and it didn't help get the items out but I also couldn't reproduce with either "given" items, crafted from scratch, damaged a bit items or anything else I tried. I only spawned in crystals so I am not sure if crafting them in the crystal grower would make a difference.

I wonder if it has to do with when they are imported? I used an importer and pulled from all my chests and that is the only thing I can think of?!?

Is there something those of us who have stuck items can do to help determine what is blocking it? Can you make a special build with debugging info pasted into chat when we try to drag or click an item out?

commented

I put my crystals in through the terminal. I did not import them or anything.

commented

I'll have another go at this issue tomorrow, and if I can't figure it out I'll give you a debug build.

commented

Only try pulling out the items that are stuck (so I can get the relevant logs), and send me the MC console data:

refinedstorage-debug1.zip

commented

Okay, can you try this one for me?

refinedstorage-debug2.zip

commented

This is with debug2:

[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xtile.deepresonance.resonating_crystal@0 (grid extract flags = 0)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:2.795206f,strength:1.4542f,glowing:0b,purity:12.726061f,infused:0,power:7.8774333f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:1.440359f,strength:2.3209314f,glowing:0b,purity:5.343514f,infused:0,power:22.007769f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:0.94835144f,strength:1.2934377f,glowing:0b,purity:11.857521f,infused:0,power:50.59206f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:0.10747299f,strength:1.4189719f,glowing:0b,purity:6.330573f,infused:0,power:38.98236f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:1.0621457f,strength:1.0508118f,glowing:0b,purity:5.7464576f,infused:0,power:28.505196f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xtile.deepresonance.resonating_crystal@0 with 1xtile.deepresonance.resonating_crystal@0 (flags = 3)
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = {owner:"",efficiency:0.26320454f,strength:2.5847518f,glowing:0b,purity:5.3464346f,infused:0,power:18.713894f,version:2b}, r = {efficiency:1.3283716f,strength:1.8075614f,glowing:0b,purity:5.908609f,infused:0,power:2.1873345f,version:2b}
[08:06:03] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null

Here is the full output log:
fml-client-latest.txt

commented

Can you also try extracting something else than the crystals? Like the botania stuff for example

commented

Sure thing: Here you go, debug 2, living armor that is stuck, click and drag plus shift click attempts:

[08:17:29] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.livingArmour.@110 (grid extract flags = 0)
[08:17:29] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.livingArmour.@110 with 1xitem.BloodMagic.livingArmour.@110 (flags = 3)
[08:17:29] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {}
[08:17:29] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.livingArmour.@110 (grid extract flags = 0)
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.livingArmour.@110 with 1xitem.BloodMagic.livingArmour.@110 (flags = 3)
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {}
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.livingArmour.@110 (grid extract flags = 0)
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.livingArmour.@110 with 1xitem.BloodMagic.livingArmour.@110 (flags = 3)
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {}
[08:17:30] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null
[08:17:31] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.livingArmour.@110 (grid extract flags = 4)
[08:17:31] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.livingArmour.@110 with 1xitem.BloodMagic.livingArmour.@110 (flags = 3)
[08:17:31] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {}
[08:17:31] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null
[08:17:32] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:25]: Trying to extract item 1xitem.BloodMagic.livingArmour.@110 (grid extract flags = 4)
[08:17:32] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:109]: Comparing 1xitem.BloodMagic.livingArmour.@110 with 1xitem.BloodMagic.livingArmour.@110 (flags = 3)
[08:17:32] [Server thread/INFO] [STDOUT/]: [refinedstorage.RefinedStorageUtils:compareStack:138]: NBT is not equal, l = null, r = {}
[08:17:32] [Server thread/INFO] [STDOUT/]: [refinedstorage.apiimpl.network.GridHandler:onExtract:30]: Extraction failed: item was null

fml-client-latest.txt

commented

it seems same thing happens with some other mod items (namely ic2 energy crystals and deep resonance crystals) where they get stuck in the machine unable to extract them... oddly it doesnt happen every single time.

Common nominator seems to be that they all use some kind of custom stuff from vanilla items (living armor upgrade system, deep resonance crystal properties, ic2 energy system...

commented

Hmm, are you able to export stuck items WITHOUT comparing on NBT and damage?

commented

Oooh, that worked! Crafting grid to cables to exporter to chest with given empty crystal and my enchanted work & damaged living armor used as filter and it pulled them right out. I thought I had tried this before as I already had an exporter crafted but I am several versions newer since when I would have tried in the past.

Here are the logs in case it helps troubleshoot:
fml-client-latest.txt

commented

It looks like the majority of the issue is trying to compare an empty NBT tag to a null one. For pretty much all intents, these two conditions are equal, but I don't think the standard comparator treats them as such. As for the owner="" vs not present tag on crystals, that's probably something that should be brought to McJty's attention.

commented

I suspect this code is responsible: https://github.com/McJty/DeepResonance/blob/master/src/main/java/mcjty/deepresonance/blocks/crystals/ResonatingCrystalBlock.java#L117

As for null vs empty, that's probably just an issue with the way stacks are (de)serialized over the network

commented

aha! Good find.
Well, this is the new NBT compare I wrote:

    public static boolean compareNbt(ItemStack left, ItemStack right) {
        if (!ItemStack.areItemStackTagsEqual(left, right)) {
            if (left.hasTagCompound() && !right.hasTagCompound() && left.getTagCompound().hasNoTags()) {
                return true;
            } else if (!left.hasTagCompound() && right.hasTagCompound() && right.getTagCompound().hasNoTags()) {
                return true;
            }

            return false;
        }

        return true;
    }

Kinda verbose, but clear.

commented

For the owner tag issue, I can probably maintain 2 copies of every itemstack on the client, one that is rendered, and one that is kept in memory for sending to the server.

commented

Do you have sorting options or such that prevents you from just sending back an index of the item you picked?

commented

Yup, sorting and search bar. I could send over a ID as well, but that would mask issues that could occur in the future.

commented

@tahg I could probably add a an additional check to make null and size=0 equal to each other, but I want to find the real cause of getting null tags. Oh well, I suppose I could add the check for now.

commented

It starts out null. It generally becomes not null when some mod pre-emptively creates it, and then conditionally decides to add a tag or not, in my experience. If creating and deserialization of an item stack always created the tag, I don't think it'd be an issue.

commented

yeah, that is true. that still leaves me wondering about that owner tag. As as soon as you push to a grid it takes a copy of the stack, so taking out should work. When a grid is opened it sends the stack to the client, and the client sends the wanted stack back in a packet when trying to pull. Maybe there is some kind of different between the client and server tag?

commented

Okay, I just published v0.8.10. Please try it out and let me know if it works now

commented

Yes it works for me.
I can retrieve all stuck items on all of my saves.
So DeepResonance and BloodMagic are working for me now. Thanks for your work.

commented

With pleasure!