ReikaKalseki / Reika_Mods_Issues

The issue tracker for all of my mods - RotaryCraft, its addons, ChromatiCraft, and everything else.
46 stars 14 forks source link

FakePlayers spamming log #2055

Open huntert98 opened 5 years ago

huntert98 commented 5 years ago

From what I can tell, it looks like the fake player [Minecraft] from our ender quarries causes Chromaticraft to write:

CHROMATICRAFT ERROR: Looking for progression data on player [Minecraft], with no NBT?!

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!

huntert98 commented 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

OvermindDL1 commented 5 years ago

@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?

huntert98 commented 5 years ago

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

OvermindDL1 commented 5 years ago

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.

huntert98 commented 5 years ago

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.

ReikaKalseki commented 5 years ago

The problem here seems to be that it is not correctly identifying the fake player as fake, and thus looking to get its progression.

sameer commented 5 years ago

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?

huntert98 commented 5 years ago

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

huntert98 commented 5 years ago

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

ReikaKalseki commented 5 years ago

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.

ReikaKalseki commented 4 years ago

This makes no sense on two counts, and I have no idea what is going wrong.