6 Commits

Author SHA1 Message Date
florian.berthold 592808792a Revert "fix(items): defer empty draw when slot reads nil after lag"
This reverts commit 1af22578d7.
2026-05-14 06:20:03 +02:00
florian.berthold af80a3003d Revert "fix(items): keep retrying nil slot reads instead of accepting after one pass"
This reverts commit 60e3cea9fd.
2026-05-14 06:20:03 +02:00
florian.berthold 60e3cea9fd fix(items): keep retrying nil slot reads instead of accepting after one pass
Single-retry was still flashing slots empty on the inventory when lag
exceeded 0.25s — the retry pass would read nil and broadcast the empty.
Track a per-slot retry counter (capped at RETRY_MAX=12, ~3s) so we keep
deferring until the link comes back or we hit the ceiling. Bank was
never affected — it goes through PLAYERBANKSLOTS_CHANGED, not BAG_UPDATE.
2026-05-14 02:12:38 +02:00
florian.berthold 1af22578d7 fix(items): defer empty draw when slot reads nil after lag
Under server lag BAG_UPDATE can fire before item data arrives, causing
GetContainerItemInfo to return nil for a still-occupied slot and Bagnon
to broadcast ITEM_SLOT_UPDATE with no link — the slot then renders empty
until the next bag event. UpdateItem now queues a single ~0.25s retry
for the bag when a previously occupied slot reads nil; the retry pass
trusts whatever it reads, so genuine empties still resolve.
2026-05-14 01:50:42 +02:00
Andrew6810 8dba2f1dca Use AceBucket to handle mass BAG_UPDATE events when re-instancing 2022-12-31 14:57:43 -07:00
Andrew6810 4e3aff9d89 init 2022-10-21 06:37:39 -07:00