mojira.dev
MC-47630

Villager Career Crash

When using a custom villager with a career level of 100, if a purchase is made the game crashes. On re-log the item for sale appears in inventory and item used to purchase it is missing from inventory.

What I expected to happen was...:
For transaction to go smoothly with no crashes.

What actually happened was...:
The game crashed

Steps to Reproduce:
1. Summon villager using code provided.

/summon Villager ~ ~-1 ~ {Career:4,CareerLevel:100,Profession:4,CustomName:Head Hunter,CustomNameVisible:0,Offers:{Recipes:[{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Notch,display:{Name:"Notch"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Herobrine,display:{Name:"Herobrine"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:jeb_,display:{Name:"jeb"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Grumm,display:{Name:"Grumm"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Dinnerbone,display:{Name:"Dinnerbone"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:C418,display:{Name:"C418"}}}},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:SkythekidRS,display:{Name:"SkyDoesMinecraft"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:SSundee,display:{Name:"SSundee"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Smart_SSundee,display:{Name:"Smart SSundee"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:ASFJerome,display:{Name:"Jerome"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:swimmingbird941,display:{Name:"swimmingbird941"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:dragnoz,display:{Name:"Dragnoz"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Panda4994,display:{Name:"Panda4994"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Docm77,display:{Name:"Docm77"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:JL2579,display:{Name:"JL2579"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Ground15,display:{Name:"Ground15"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:oldGanon,display:{Name:"oldGanon"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:preisi,display:{Name:"preisi"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Wubbi,display:{Name:"Wubbi"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:Bananenkrieger,display:{Name:"Bananenkrieger"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:SethBling,display:{Name:"SethBling"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:commanderbass,display:{Name:"Commanderbass"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Villager,display:{Name:"Villager"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Golem,display:{Name:"Golem"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Squid,display:{Name:"Squid"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Sheep,display:{Name:"Sheep"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Cow,display:{Name:"Cow"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_MushroomCow,display:{Name:"Mushroom Cow"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Pig,display:{Name:"Pig"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Chicken,display:{Name:"Chicken"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_PigZombie,display:{Name:"Pig Zombie"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Blaze,display:{Name:"Blaze"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_CaveSpider,display:{Name:"CaveSpider"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Enderman,display:{Name:"Enderman"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Ghast,display:{Name:"Ghast"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Spider,display:{Name:"Spider"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_Slime,display:{Name:"Slime"}}},maxUses:999,uses:0},{buy:{id:name_tag,Count:2,tag:{display:{Name:Bitcoin}}},sell:{id:skull,Damage:3,Count:1,tag:{SkullOwner:MHF_LavaSlime,display:{Name:"Lava Slime"}}},maxUses:999,uses:0}]}}

2. Get a name tag and rename it Bitcoin

3. Purchase a head
4. 3 out of 4 times your game should crash.

Time: 2/6/14 2:14 PM
Description: Ticking entity

java.lang.ArrayIndexOutOfBoundsException: 3
	at aab.cf(SourceFile:442)
	at aab.bv(SourceFile:159)
	at tb.bt(SourceFile:451)
	at ta.e(SourceFile:1390)
	at tb.e(SourceFile:313)
	at sa.e(SourceFile:119)
	at ta.l_(SourceFile:1258)

Linked issues

Attachments

Comments 2

Confirmed in 14w08a

This is not caused by the "CareerLevel" tag, but rather, your "Career" and "Profession" combo. You've provided an invalid combo, where villagers with a profession of 4 only have careers of 0 or 1, while you've inserted 4. When you trade with the villager and exit the GUI, it attempts to update its trades based on its career. Since you're using an invalid career, the game will crash. Use a value of 0 or 1 for "Career" and you won't have issues, and can find the proper values on the wiki: http://minecraft.gamepedia.com/Villager#Professions_and_Careers

Christian Goudy

(Unassigned)

Unconfirmed

Minecraft 14w06b

Retrieved