On servers, client will assume certain actions have been carried out without clarification, for example:
If player is not allowed to place or break blocks, when they try it will appear client-side for about half a second. This is probably the most important part of this bug as it always you to exploit it and transverse tall walls by spam placing the block underneath yourself.
Item stacks in an inventory will appear picked up even if the server has denied the ability to take it from the inventory screen. This is frustrating for Bukkit plugins as some inventory can be used for a sort of menu whereby you click a certain item, which will then do a certain action, for instance a shop. This glitchy behavior makes these sorts of menu hard to work with sometimes and makes them look unprofessional (as its the only way of doing because of a lack of server-side defined GUI elements.)
Could you please look into preventing the client from making these presumptions and sometimes confusing itself.
Comments 5
I do know it's predicting, but it predicts things it should not need to and makes the playing experience in some occasions just look wonky and unprofessional, there are games that do a much better a job of this than minecraft does.
What do you mean by "predicts things it should not need to". Anything it doesn't predict, you'd have to wait for a full round trip, which, on a laggy connection, could be noticeable. If it didn't predict block placement, then there could be a noticeable delay for each one, as it would have to send the event to the server, and wait for the response. Same with inventory management. It would be stupid to have to wait a full round trip just to move an item in your inventory.
They should improve the prediction, not remove it. They probably won't support wonky behavior like the Bukkit plugins you mention until they start to implement their own plugin API.
Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
This is called client-side prediction, and when it has the necessary information to predict correctly, it makes for a smoother experience, by hiding network latency. The problem here is most likely to arise from a non-vanilla server, such as Bukkit. Once they actually intend for server behavior to differ from the default behavior, they'll have the server send the information necessary for the client to make accurate predictions, and give the client the ability to understand that information. This would all be part of the work necessary for the plugin API.