Skip to content

Fix/legacy drop slot desync#1297

Open
Term4 wants to merge 2 commits into
ViaVersion:masterfrom
Term4:fix/legacy-drop-slot-desync
Open

Fix/legacy drop slot desync#1297
Term4 wants to merge 2 commits into
ViaVersion:masterfrom
Term4:fix/legacy-drop-slot-desync

Conversation

@Term4

@Term4 Term4 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Modern clients predict dropping items from hotbar locally, legacy ones do not.

Term4 added 2 commits July 15, 2026 12:00
1.17.1+ servers skip the hotbar slot resync after a drop action, assuming the client predicted it (ServerPlayer#drop marks the remote slot as already known) - clients below 1.17.1 don't predict drops, so the dropped stack ghosts in their hotbar. Convert drop item/stack actions into the equivalent throw-click on the selected hotbar slot at the 1.17.1 boundary: the click path does get resynced, and every affected client passes through this hop.
Empirical bisect (stock plugins, 26.2 vanilla): the drop ghost affects clients up to 1.13, not 1.17 - client-side drop prediction was added in 1.13.1, so every affected client passes through this hop instead. Gate on a 1.17.1+ server (older servers resync drops themselves); the upper hops convert the legacy click onward, including the 1.17.1 state id.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant