The bug
Setting a ConversionTime
for a zombie villager without setting ConversionPlayerLeast
and ConversionPlayerMost
crashes the server.
[^crash-2017-05-17_21.03.51-server.txt] (1.12-pre3, 1.12-pre5)
Description: Ticking entity
java.lang.NullPointerException: Ticking entity
at amr.b(SourceFile:2627)
at ads.dr(SourceFile:186)
at ads.B_(SourceFile:113)
at amr.a(SourceFile:1514)
at om.a(SourceFile:714)
at amr.h(SourceFile:1499)
at amr.k(SourceFile:1382)
at om.k(SourceFile:547)
at net.minecraft.server.MinecraftServer.D(SourceFile:634)
at net.minecraft.server.MinecraftServer.C(SourceFile:562)
at cgx.C(SourceFile:154)
at net.minecraft.server.MinecraftServer.run(SourceFile:466)
at java.lang.Thread.run(Thread.java:745)
How to reproduce
/summon zombie_villager ~ ~ ~ {ConversionTime:0}
Code analysis
Based on 1.12-pre3 decompiled using CFR
It looks like the UUID of the player who started the conversion is compared with the UUIDs of online players to then trigger the advancement trigger cured_zombie_villager
. The problem is that it is not tested if the passed UUID is null
which causes a NullPointerException
when the method equals
is called for it.
Linked issues
is duplicated by 1
Attachments
Comments 8
The file will be located in your ".minecraft" folder, under "crash-reports". It will have a similar filename to the screenshots.
To attach it, use the same method as attaching screenshots (drag the file onto the bug report's "attachments" section)
also a normal "summon minecraft:zombie_villager" - "entitydata @e[r=2]
{ConversionTime:40}