Minecraft – How to prevent new villager trades from spawning

minecraft-commandsminecraft-java-edition

When making a custom adventure map, usually you only want the trades you programmed into a villager to show up. By default, however, the game will try to spawn new trades when the last one is made. The classic way I'm seeing in tutorials to prevent new trades is to make the last trade untradeable; however, with the release of 1.7, a lot of the old item IDs that were unobtainable have been removed from the game altogether, and following the tutorial I have crashes the game when the trade interface is scrolled to the last trade.

So there's two parts to this question:

  1. Is there a better way to prevent new trades with the 1.7 mechanics? Or with the snapshots of 1.8 mechanics?
  2. If not, what is a safe data ID to use to prevent the last trade from being a real trade as of 1.7?

Best Answer

One of you said that the max career level is 4, so I used this command

/summon Villager ~ ~1 ~ {Profession:0,Career:2,CareerLevel:4,Offers:{Recipes:[{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:8,tag:{display:{Name:"Coin"}}},sell:{id:wooden_sword,Count:1,tag:{Unbreakable:1,display:{Name:"Sturdy Stick"}}}},{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:12,tag:{display:{Name:"Coin"}}},sell:{id:golden_sword,Count:1,tag:{AttributeModifiers:[{AttributeName:"generic.movementSpeed",Name:"generic.movementSpeed",Amount:-.10,Operation:1,UUIDLeast:112181,UUIDMost:524106}],Unbreakable:1,ench:[{id:16,lvl:1}]}}},{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:2,tag:{display:{Name:"Coin"}}},sell:{id:leather,Count:1}}]},Attributes:[{Name:generic.movementSpeed,Base:0}],PersistenceRequired:1,ActiveEffects:[{Id:10,Amplifier:50,Duration:133333333333320,ShowParticles:0b},{Id:21,Amplifier:60,Duration:1333333333333333200}]} 

and set the career level at 4, this spawns a villager with a career level of 4 that will trade sunflowers named Coin for certain items. Now I tested this multiple times to make sure I was correct, and I was, setting the career level at 4 will prevent new trades from appearing. I am not sure if this works in 1.9, 1.10 or 1.11 because I still play in 1.8.9.