Blood Magic Living Armor (Boots and Leggings) can't be retrieved from Grid
choekstr opened this issue ยท 36 comments
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.
I am running FTB Unstable which is currently on MC 1.10.0 which FTB team bundles RefinedStorage 0.8.5.
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.
In what storage medium are you storing your blood orb? Storage disks in disk drive?
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.
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.
Did you get the helmet straight out of the creative inventory or did you use it first?
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.
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:
I just noticed this issue on our world also, a tad frustrating to have my crystals locked up in limbo.
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?
I'll have another go at this issue tomorrow, and if I can't figure it out I'll give you a debug build.
Only try pulling out the items that are stuck (so I can get the relevant logs), and send me the MC console data:
Okay, can you try this one for me?
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
Can you also try extracting something else than the crystals? Like the botania stuff for example
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
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...
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
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.
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
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.
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.
Do you have sorting options or such that prevents you from just sending back an index of the item you picked?
Yup, sorting and search bar. I could send over a ID as well, but that would mask issues that could occur in the future.
@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.
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.
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?
Okay, I just published v0.8.10. Please try it out and let me know if it works now
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.