The bug
If a villager wants item A and will give item B in a trade, and I hold A, it will hold B. But if I drop the whole stack of A the villager still holds B. Swapping to another empty hotbar slot does update the villagers' hands.
To reproduce
Get a villager to hold an item in response to your own held item
Drop the whole stack of your held item
→ ❌ The villager will continue to hold the offered item
PS: Looks to me like the cause is villagers checking on hotbar slot switch (and /clear
– I walked onto a pressure plate to a command block with /clear Tachytaenius
and the villagers put their B's away when my A disappeared), and not when the item stack in the current hotbar slot is changed via dropping.
Can confirm in 20w51a.