Closed Boy0000 closed 8 months ago
I mean, this sounds peak "it does what it's configured to do", idk if we should be special casing trying to send updates for this stuff back to clients, imho, that kinda falls out of our responsibility in a sense
I honestly also think this is outside of the configuration option. It promises no block updates to the blocks, not that the server also actively prevents clientside desyncs. This should be relatively straight forward to also fix on the plugin side by doing what the server would do, resend the block state ?
There's currently no way for a plugin to reliably fix this though. The point of the disable-noteblock-updates setting is so plugins don't need to listen to physics events, right? Yet, to implement a decent fix for this, a plugin would need to use listen to physic events anyway.
Welcome to the rabbit hole that is capturing every single case where client predictability causes a desync between the client and the servers state. The general understanding that was made when we accepted Thais as a feature is that we would not be chasing all of these.
On Tue, 27 Aug 2024 at 19:12, KillerCreeper @.***> wrote:
There's currently no way for a plugin to reliably fix this though. The point of the disable-noteblock-updates setting is so plugins don't need to listen to physics events, right? Yet, to implement a decent fix for this, a plugin would need to use listen to physic events anyway.
— Reply to this email directly, view it on GitHub https://github.com/PaperMC/Paper/issues/9496#issuecomment-2313214172, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJMAZEBBPFN3FOB5MHTLO3ZTS6RTAVCNFSM6AAAAAA2LHCPDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJTGIYTIMJXGI . You are receiving this because you commented.Message ID: @.***>
Expected behavior
When setting is enabled there should be no updates to the block server and client side.
Observed/Actual behavior
For majority of the cases this is what happens, except minor flickering before client acknowledges the block again Main case I could trigger a consistent client-side desync was with exploding TNT
There was a similar issue with Tripwires where client was predicting the Powered-state when walked over. Fixed when the disableTripwireUpdates setting is enabled or EntityInsideBlockEvent was cancelled Making this as I wasn't sure what would be needed done in a PR to fix this. Since tripwires just return before a checkPressed method is called
Steps/models to reproduce
Plugin and Datapack List
Paper version
Other
https://github.com/PaperMC/Paper/assets/62521371/4e93e2b4-1f10-4aa2-8d2b-6ee68b2992dc