I think I've tracked this down to a library issue.
When receiving exact copies of the same item from the exact same location, the produced NetItems compare identical. This causes ReceivedItemHelper:Socket_PacketReceived to skip the duplicate items -- preventing it from being added to the itemQueue, among other things.
The first time this happens, the client is never notified of the new item. The second time it happens, a resync triggers (since Multiclient realizes it only has N items in its list when it should have N+1) and from the caller'sperspective it receives two new items: the first two items ever sent. This behavior is witnessed with https://github.com/Ijwu/Archipelago.HollowKnight/issues/79.
This currently can only happen with /send, !getitem, and startinventory -- all of which can have multiple instances of the same item ID, sender, recipient, and location.
I think I've tracked this down to a library issue.
When receiving exact copies of the same item from the exact same location, the produced NetItems compare identical. This causes
ReceivedItemHelper:Socket_PacketReceived
to skip the duplicate items -- preventing it from being added to the itemQueue, among other things.The first time this happens, the client is never notified of the new item. The second time it happens, a resync triggers (since Multiclient realizes it only has N items in its list when it should have N+1) and from the caller'sperspective it receives two new items: the first two items ever sent. This behavior is witnessed with https://github.com/Ijwu/Archipelago.HollowKnight/issues/79.
This currently can only happen with /send, !getitem, and startinventory -- all of which can have multiple instances of the same item ID, sender, recipient, and location.