I am constructing a mod that has zombies spawning a good distance away from a random player by custom means.
At this range the default despawn code immediately removes them, so in my mod I am using the
forge event ( LivingSpawnEvent.AllowDespawn ) to deny the despawn, however this is not working in some cases.
I have found the enabling persistence on the mob will allow it to function at these distances, but I do not know a
way to remove that persistence without killing the mob manually, which is undesirable.
In the EntityLiving Class I have found that the if statement in the despawn entity method has an extra logic operation that
I do not completely understand: idletime & 0x1f = 0x1f
I went and learned what I could about hexadecimal and bit-wise operators and from that, this seems unlikely to evaluate to true most of the time, making denying the spawn pointless.
Can someone help explain when this would be true, or can someone let me know if I can turn off persistence on a mob?