Improved Mobs (Fabric)

Improved Mobs (Fabric)

170k Downloads

Ticking Entity crash caused by Swimride and Ice and Fire Myrmex Worker. Entity ignores whitelist

b1ind314 opened this issue ยท 5 comments

commented

Issue (The better the description the better i can solve the issue):

Ice and Fire Myrmex worker causes ticking entity crash while using swimride.
Swimride is set to whitelist for Zombies only, but Myrmex worker doesn't care for rules.
Edit: adding "iceandfire:myrmex_worker|SWIMMRIDE|REVERSE", seems to make the little buggers respect the whitelist.
ANOTHER EDIT: caused a different crash. The solution was to completely remove the mob from the attribute list. Doh!

Steps to reproduce:

Install Ice and fire, and improved mobs. set swimride to whitelist. join creative world and spawn myrmex worker in water with something to aggro it

Affected Versions (Latest is NOT a version):

  • Minecraft:1.16.5
  • Forge:3.1.24, 3.1.30 tested
  • TenshiLib: TenshiLib-1.16.3-1.3.0.jar
  • ImprovedMobs: improvedmobs-1.16.4-1.7.7.jar
  • Ice and Fire: iceandfire-2.1.6-1.16.4.jar

Other Mods (If you think it might be cause of an incompability. Adding a link + the used version will help greatly):

Ice and Fire, but I found it in my modpack, and did not test it with just the two mods. I don't think a third mod is involved though.
https://www.curseforge.com/minecraft/mc-mods/ice-and-fire-dragons

Logs (Use a site like pastebin, gist etc. DONT COPY PASTE THE LOG IN HERE. Also dont upload the log file directly here!):

https://pastebin.com/jmCjvw3p

Config file (via pastebin, gist. No uploading directly):

https://pastebin.com/4xx1hw7F

commented

you are setting "Boat Whitelist" = true so every mob added to that list will be added to the guardian riding list.
as for the crash. that is kinda on them. i dont think they expected this but mobs riding another mob take on their path finding causing that crash

commented

actually they do do a check hmmm

commented

So the underlying problem is:
Ice and Fire checks the cast of the MobEntity#getNavigator in #shouldExecute and then assumes the PathNavigator is still the same which logically speaking is valid.
Since i change the riding mob though in startExecuting the PathNavigator changes too.
And since mc first calls #shouldExecute for all goals, then #startExecuting for all goals and then finally #tick (instead of doing it individually for each goal) it causes that crash

Leaving it here as a note

commented

you are setting "Boat Whitelist" = true so every mob added to that list will be added to the guardian riding list.

Yes. I have Zombies on the whitelist, and nothing else. So as I understand it, the Myrmex worker shouldn't be attempting the guardian summoning.
I'm a bit of a newb when it comes to this. Am I missing something?

commented

So I figured out the solution was to completely remove the offending mobs from the attribute list. seems obvious now.