Summary:
Fix a set of bugs in the shared inventory system where equipping or un-equipping armor corrupted other players' inventory views, item movement between slots lagged by one interaction for other players, and placing a boat caused it to briefly reappear in the placer's inventory.
Description:
The shared inventory mechanic, which keeps all participants' inventories synchronised in real time, exhibited three distinct failure modes under normal gameplay. First, equipping a piece of armor removed the equivalent armor piece from other players who already had something in that slot, destroying items that should have been untouched. Second, moving an item between inventory slots (for example picking up dirt and placing it elsewhere) caused other players to see the item disappear then reappear one interaction later, creating a persistent one-event lag in their view. Third, placing a boat consumed it from the hand correctly on the placer's side but briefly re-showed it in the placer's inventory before disappearing, which also created a desync for other participants. Each bug had a distinct cause related to when the sync read inventory state relative to when Bukkit actually applied the mutation.
Estimated Ideal Time: 6 hours
Summary:
Fix a set of bugs in the shared inventory system where equipping or un-equipping armor corrupted other players' inventory views, item movement between slots lagged by one interaction for other players, and placing a boat caused it to briefly reappear in the placer's inventory.
Description:
The shared inventory mechanic, which keeps all participants' inventories synchronised in real time, exhibited three distinct failure modes under normal gameplay. First, equipping a piece of armor removed the equivalent armor piece from other players who already had something in that slot, destroying items that should have been untouched. Second, moving an item between inventory slots (for example picking up dirt and placing it elsewhere) caused other players to see the item disappear then reappear one interaction later, creating a persistent one-event lag in their view. Third, placing a boat consumed it from the hand correctly on the placer's side but briefly re-showed it in the placer's inventory before disappearing, which also created a desync for other participants. Each bug had a distinct cause related to when the sync read inventory state relative to when Bukkit actually applied the mutation.
Estimated Ideal Time: 6 hours