Spectrum

Spectrum

2M Downloads

[BUG] Killing the wither sometimes results in NPE

redstonekasi opened this issue ยท 0 comments

commented

Killing the wither sometimes results in a NPE, the cause seems to be here:

Entity attackerEntity = source.getAttacker();
World world = attackerEntity.getWorld();
if (attackerEntity instanceof LivingEntity livingAttacker) {

Moving attackerEntity.getWorld(); into the if body succeeding that line should be a valid fix.

Minecraft version
1.20.1

Mod version
1.7.6

Crash Report

[20:49:42] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.util.crash.CrashException: Ticking entity
        at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:901) ~[server-intermediary.jar:?]
        at net.minecraft.server.dedicated.MinecraftDedicatedServer.tickWorlds(MinecraftDedicatedServer.java:283) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:824) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:671) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.entity.Entity.getWorld()" because "attackerEntity" is null
        at net.minecraft.entity.boss.WitherEntity.handler$cmc000$spectrum$spawnEntity(WitherEntity.java:1641) ~[server-intermediary.jar:?]
        at net.minecraft.entity.boss.WitherEntity.dropEquipment(WitherEntity.java:482) ~[server-intermediary.jar:?]
        at net.minecraft.entity.LivingEntity.drop(LivingEntity.java:1411) ~[server-intermediary.jar:?]
        at net.minecraft.entity.LivingEntity.onDeath(LivingEntity.java:1366) ~[server-intermediary.jar:?]
        at net.minecraft.entity.LivingEntity.damage(LivingEntity.java:1222) ~[server-intermediary.jar:?]
        at net.minecraft.entity.boss.WitherEntity.damage(WitherEntity.java:474) ~[server-intermediary.jar:?]
        at net.minecraft.entity.LivingEntity.baseTick(LivingEntity.java:379) ~[server-intermediary.jar:?]
        at net.minecraft.entity.mob.MobEntity.baseTick(MobEntity.java:284) ~[server-intermediary.jar:?]
        at net.minecraft.entity.Entity.tick(Entity.java:474) ~[server-intermediary.jar:?]
        at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2380) ~[server-intermediary.jar:?]
        at net.minecraft.entity.mob.MobEntity.tick(MobEntity.java:351) ~[server-intermediary.jar:?]
        at net.minecraft.server.world.ServerWorld.tickEntity(ServerWorld.java:739) ~[server-intermediary.jar:?]
        at net.minecraft.world.World.tickEntity(World.java:480) ~[server-intermediary.jar:?]
        at net.minecraft.server.world.ServerWorld.method_31420(ServerWorld.java:385) ~[server-intermediary.jar:?]
        at net.minecraft.world.EntityList.forEach(EntityList.java:54) ~[server-intermediary.jar:?]
        at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:353) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:897) ~[server-intermediary.jar:?]
        ... 5 more