mojira.dev
MC-151282

Villager trade GUI doesn't show the correct price on servers if trade demand is high

To reproduce

  1. Start a server (or use a LAN world and follow the following steps with a second account)

  2. Join the server

  3. Spawn a villager zombie

  4. Cure it

  5. Give it a profession

  6. Trade with it until it is completely locked

  7. Let it restock

  8. The prices should now be slightly increased
    → ❌ When trading with the villager, it will take more items from you than displayed in the GUI

Original description

I had a one emerald villager now he still shows that trade but glitches out when i try to trade with him. I was able to get ~6 books out of him and after that i can grab the book out of the menu and then it disappears. Soon after I leave the GUI my emerald/book comes back in my inventory. Same with the same villager's paper trade. Some times he takes my paper, sometimes they just come back to my inv. after i leave gui. 

I think the GUI is just Not updating correctly to what trade the villager has available.

UPDATE: I found that the villager actually knows how much emerald it wants for each item. when i put 19 paper in like the GUI suggested, the emerald shows up on the right, but it disappears if you try to grab it. However if I put around 40 paper in, he will actually give you the emerald. Same with the mending book situation, where he actually wants 2 emerald instead of the 1 listed on GUI.

Related issues

MC-151465 Villager Purchasing Bug - Eating Up Emeralds, No Item in Retun MC-153678 Masons causing emeralds to disappear MC-153795 Villagers can't decide whether or not their trades are locked MC-153975 Villagers consuming more items than are actually being traded 1.14.2 MC-154370 Villager takes undiscounted price despite having discount MC-154397 Villager Trades are more expensive than the GUI says MC-154936 shown villager trade cost is different then the actual price MC-154953 Villagers refusing to trade, only trading when more items are put in slot and take more items than advertised. MC-155149 Villager price change doesn't show MC-155225 My villagers are stealing me (Taking more paper than displayed) MC-155260 Cleric villager takes a stack of rotten flesh instead of indicated amount MC-155321 Trading with a villager takes original price and discount price MC-155347 Villager Trading Bug MC-155443 Villager trading desync MC-155609 Villager Trading GUI does not update with changing costs. MC-156000 Villager Trades take more than what is stated after completing the trade. MC-156180 Villagers not accepting discounted trades/prices MC-157014 Master Shephard Villager Trade for Green Dye Behaves Strangely

Attachments

Comments

migrated
[media][media][media][media]
violine1101

Duplicate of MC-148454

migrated

I don't think this is this resolved. Seem to be server only since i cannot replicate in single player.
Steps to replicate:
1. Find an igloo with a basement
2. Cure the zombie villager in there
3. give him a profession
4. Trade with him and lock his trade for the day
5. Keep trading until he raises prices.
6. There are no changes on the GUI about the change, but if you give him say a stack paper, he will take more paper than displayed for the emerald.

violine1101

Indeed. That issue still seems to exist, but only if you have cured the villager and traded enough with it so that it increases its prices again

migrated

I have encountered this issue in 1.14.2

violine1101

I've heard in duplicates of this ticket that this does not only happen with villagers that are cured zombie villagers. However, that seems to be one consistent way to reproduce it. There probably are other ways as well! Further testing is definitely needed here and would be appreciated a lot!

Irbis

Ok. Tested this bug and found out that demand entitydata is not counted in price while playing online.

Easy way to notice it is making a villager with job. Then opening game to lan and setting high demand of first trade:

/data modify entity @e[type=minecraft:villager,limit=1,distance=..5] Offers.Recipes[0].demand set value 20

For main account price will be rised, for entering second account price will be default. When you trade with any of both accounts, it will take higher amount of items.

migrated

I (think I) see this too on the lastest available verson at the time of my comment ( 1.14.3). We have no dedi-server, but a player who is acting as server, started as single, opened to lan. When I join as a second player, I see wrong/default prices, but need to pay the prices that the 1st / 'server' player sees.

These are all 'normal' villagers, no cured zombies. (Well, we abducted 2 villagers and started a new village far, far away, and all the villagers are offspring of these 2 orginal ones.) We have very frequently traded with the villagers we observe the problem with, before we realized that something was, indeed, wrong. (not extensively tested with other villagers). Savegame can be provided if that is helpful, or debugged through other means if helpful.

If this is a different bug, let me know and I'll create a new one or append my comment elsewhere.

Irbis

1.14.3 affected as Laurens mentioned.

slicedlime

Is this still an issue on 1.14.4-pre3 or later?

slicedlime

Never mind, got a repro.

Irbis

@slicedlime, easiest repro is to use this on server and trade as non-host:

/data modify entity @e[type=minecraft:villager,limit=1,distance=..5] Offers.Recipes[0].demand set value 20

Thank you for taking care of those bugs.

migrated

slicedlime

Confirmed

Important

Trading, UI

Minecraft 1.14.1 Pre-Release 1, Minecraft 1.14.1 Pre-Release 2, Minecraft 1.14.2, Minecraft 1.14.3 Pre-Release 3

Minecraft 1.14.4 Pre-Release 5

Retrieved