After I had set up a station for testing villager careers, I found that the Career_tag was being changed from the one I had applied to it!
e.g. >> /summon Villager ~1 ~ ~ {Profession:0,Career:1}
I had some command_blocks on a clock testing that villager's career_tag. It read correctly until I opened the trade menu with it. When I looked at the output then, it read a different career!
It seemed that the career switching was random (no pattern I could see).
To reproduce the bug? Test a villager's career_tag after you summon it but before you trade with it. Then open the trade window with the villager and test it again.
EDIT
Alright... I've made some changes to my Villager Testing Lab and now it runs multiple testfors on a clock. Now checking for profession changes, CareerLevel changes, and the career of the villager in the cell.
I set the CareerLevel
tag to 1. When I open the trade window of the villager, ++CareerLevel
happens (it increments by one).
Attachments
Comments 4
This still affects Minecraft 1.12, I tried to summon a Farmer Villager with the Farmer Career, but it would randomize the Career to a Fletcher, Shepard, or Fisherman. Please reopen.
I found what might be the cause. If you don't define CareerLevel (what the game uses to define how many tiers of trades are unlocked), it defaults to 0, but if CareerLevel is 0, then it randomizes the Career of the Villager and then sets itself to 1. I tried spawning in a Farmer with a CareerLevel of 1, but that caused another problem. The 1st tier trades didn't exist, the 1st tier trades for this Farmer were what its 2nd tier trades were normally. Even when I traded with it as much as I could, it was cut off at the 2nd tier trades, so I couldn't trade crops to it for Emeralds or buy Bread from it.
Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases. If this has been done, we can reopen the issue.
Keep in mind that the "Resolved"-Status on this ticket just means "Answered", and that we are waiting for further information on whether this issue still exists or not. We will reopen it as soon as the requested information has been delivered.