yes, can confirm in 1.17.1
[media]Can confirm in Pre-release 4
Can confirm in 21w19a
Can confirm in 21w18a
Can confirm in 21w17a
Using cobweb you can easily verify if this bug still exists, see attachment
[media]Can confirm in 21w16a
@unknown That could work but is quite a big change, it would be much simpler to update the player's inventory after their block is being canceled.
Can confirm in 21w15a
Can confirm in 21w14a
Can confirm in 21w13a
at net.minecraft.client.player.localplayer.sendPosition()
you can see that the client won't send its position to the server unless the player moved atleast 0.03 blocks or when 20 ticks have passed.
final double double4 = this.getX() - this.xLast;
final double double5 = this.getY() - this.yLast1;
final double double6 = this.getZ() - this.zLast;
++this.positionReminder;
boolean boolean4 = double4 * double4 + double5 * double5 + double6 * double6 > 9.0E-4 || this.positionReminder >= 20;
I can't think of a good reason for this, you want the server to have the same location as the client. A simple fix would be to send the position when the player moved more than 0 blocks.
final double double4 = this.getX() - this.xLast;
final double double5 = this.getY() - this.yLast1;
final double double6 = this.getZ() - this.zLast;
boolean boolean4 = double4 != 0 || double5 != 0 || double6 != 0;
You might think why 0, what if the client moved 0.0000001 blocks? Do you want to send the position in that case? Well basically you can't, if no keys are pressed and the client's motion is lower than 0.003 it will be set to 0. And then again, even if it is sent each tick it is such a small packet you wouldn't notice any increase in bandwidth.
This report contains two bugs.
1. The inventory desync
When a block is canceled the server doesn't update the player's inventory.
2. The invalid block placement
The server thinks you're placing a block inside yourself therefore it cancels the block. This is because the client doesn't send its position when you move less than 0.03 blocks.
Can confirm in 21w11a
@panda4994 Why exactly are liquids calculated server-side? It would be much simpler to calculate it client-side and have the server validate it, just like the rest off the blocks.
I wonder if they will ever fix this, it is marked as important and should be a simple fix
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.
I have observed that sometimes, they start to work again, but I don't know what the circumstances are, and if this will eventually happen for all broken villagers.
EDIT: Adding a bed next to him didnt help, ( there were beds available even without me doing that), but wat fixed it, was picking up his workbench, and placing it closer to him. So it might be pathfinding-related, as he was never visiting his workbench. After he was fixed, he broke again when I placed the workbench back at where it originally was.
Also happens when your yaw is exactly 90 or 180 degrees.
[media]