NucleoidMC / DisguiseLib

A (server-side) library for disguising entities in Minecraft.
MIT License
10 stars 15 forks source link

Killing a mob disguised as player crashes the server with an NPE when 'Ticking player' #23

Open Shnupbups opened 2 years ago

Shnupbups commented 2 years ago

Crash log here! Version: 1.1.2 Using 'Mob Disguises' mod Minecraft 1.18.1

I was on a singleplayer world, and had run /disguise @e as minecraft:player to disguise every entity as a player, and proceeded to punch a nearby cat (now disguised as a player) to death. The server crashed with an NPE when 'Ticking player', unable to get the networkHandler field in ServerPlayerEntity.

This also caused the world to report the same error anytime an attempt to load it up again was made, rendering it unplayable.

I understand that 1.1.2 is not the latest DisguiseLib, but it is the latest that works with the 'Mob Disguises' mod, and thus is what I used. I am unsure if the issue is reproducible on 1.2.0.

samolego commented 2 years ago

It's probably reproducible, as there weren't many changes in 1.2.0

samolego commented 2 years ago

could be that network handler is trying to send "you died" packet to diguised entity ... I'll have to investigate

samolego commented 2 years ago

Ok, this is really weird, as it crashes when you pick up a new item therefore unlock new recipes. I could reproduce it with first cow I killed, however, afterwards none of the cows caused the crash anymore. Same happened with polar bears.

No baby animals were hurt while debugging.

samolego commented 2 years ago

Further observations; it seems that crash can occur with other entities as well, but only if you pick up the dropped items immediately after their death :thinking: