Open huntert98 opened 5 years ago
Digging a little deeper, the only source I could find is from @sameer. If you look here it is being initiated from the FakePlayer class.
This is, of course, assuming that this source is the same as the version of ExtraUtils that I'm using, which i cannot guarantee to be true, im not even sure if this source is from 1.7.10.
For reference I'm using these versions: Forge: 10.13.4.1614 Reikas Mods: (RotaryC, ReactorC, ChromatiC,DragonAPI, ElectriC, etc, are all on latest verion ExtraUtils: 1.2.12
@huntert98 It does look like Ender Quarries Fake Player is just MinecraftForge's normal FakePlayer, so it should be working it seems... How odd...
You are sure that your linked EnderQuarry source code URL is to the version of the EnderQuarry that is actually being run?
Like I said there is no guarantee, it looks like the owner of ExtraUtils has removed the 1.7.10 source. So sadly none of can know without a decompile, which is what the above source is. My server is running the last version built for 1.7.10, But I'm not sure if anyone has that source... @OvermindDL1 On what conditions does Chromaticraft check for progression data? I was thinking this is a block breaking issue but maybe it's something else
It has a ton of conditions, can't really go through them right now at work but there is a dedicated class that you can see that is the base set of callbacks used all over the place. Reika should know better when they come around though.
No problem! I think it's definitely block breaking. I did some testing and it looks like one of the blocks that will cause this to happen is ChromatiCraft's Energized Block. I made a short video of it here.
The problem here seems to be that it is not correctly identifying the fake player as fake, and thus looking to get its progression.
The problem here seems to be that it is not correctly identifying the fake player as fake, and thus looking to get its progression.
Is the isFake
method returning false when it should return true, or is this due to something in ChromatiCraft?
It looks like the function getNBTList is the actual cause. This function calls ChromaResearchManager.instance.getRootNBTTag which will return a Null NBTTagCompound if the input is a fake player. Anytime the NBT is null Chromaticraft will throw the message because it's not checking for a fake player. What I think needs to happen is getNBTList has to check if NBT is null and EntityPlayer is not a FakePlayer. @ReikaKalseki
i could be wrong though, bear with me I'm a .NET guy lol
So this shouldnt be unique to Ender Quarries, from what I understand every FakePlayer that fires getNBTList will cause this message. Thanks for the idea @sameer
It looks like the function getNBTList is the actual cause. This function calls ChromaResearchManager.instance.getRootNBTTag which will return a Null NBTTagCompound if the input is a fake player.
This is true, but the point is, it should never make it this far with a fake player; they are filtered far earlier.
This makes no sense on two counts, and I have no idea what is going wrong.
From what I can tell, it looks like the fake player [Minecraft] from our ender quarries causes Chromaticraft to write:
I'd assume this has to be from whenever the quarry mines a Chromaticraft related block, and with 3 full speed ender quarries running, that seems to happen a lot.
It seems like the function isFake(EntityPlayer ep) isnt recognizing that the quarry is a fake player.
Thanks Reika, you truly are the best!