File Details
arcadia-ah-1.2.5
- R
- Apr 30, 2026
- 103.77 KB
- 6.0K
- 1.21.1
- NeoForge
File Name
arcadia-ah-1.2.5.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
## [1.2.5] - 2026-04-30 (latest)
### Fixed
- **Expired listings never returned items to seller in singleplayer** — When a listing expired without a bid, `AuctionManager.processExpired` correctly created a `MailboxEntry` for the seller and called `AuctionDatabase.insertMailbox(...)`. In singleplayer / debug mode this only appended to the in-memory `DEBUG_MAILBOX` `CopyOnWriteArrayList` and was never persisted: only `DEBUG_LISTINGS` was synced to `AuctionSavedData` (`syncToSavedData()`), the mailbox had no equivalent. If the seller was offline at sweep time (or if the world was saved/closed before the seller logged back in to drain the mailbox) the entry was dropped on world unload — the listing had already been deleted from `AuctionSavedData` so the item was gone for good. `AuctionSavedData` now serializes the mailbox alongside listings (`mailbox` ListTag with `id/recipient/type/nbt/coins/reason/created`), `loadFromSavedData()` repopulates `DEBUG_MAILBOX` on `ServerStartedEvent`, and `insertMailbox` / `deleteMailboxEntry` call a new `syncMailboxToSavedData()` helper so every mailbox mutation in debug mode hits disk immediately.
### Correctifs
- **Annonces expirées ne rendaient jamais les items au vendeur en solo** — Quand une annonce expirait sans enchère, `AuctionManager.processExpired` créait correctement un `MailboxEntry` pour le vendeur et appelait `AuctionDatabase.insertMailbox(...)`. En solo / mode debug, cet appel ne faisait qu'ajouter à la `CopyOnWriteArrayList` en mémoire `DEBUG_MAILBOX` sans jamais persister : seul `DEBUG_LISTINGS` était synchronisé dans `AuctionSavedData` (`syncToSavedData()`), la mailbox n'avait aucun équivalent. Si le vendeur était hors-ligne au moment du sweep (ou si le monde était sauvegardé/fermé avant qu'il se reconnecte pour drainer sa mailbox), l'entrée disparaissait au déchargement du monde — l'annonce ayant déjà été supprimée de `AuctionSavedData`, l'item était définitivement perdu. `AuctionSavedData` sérialise maintenant la mailbox à côté des annonces (ListTag `mailbox` avec `id/recipient/type/nbt/coins/reason/created`), `loadFromSavedData()` repeuple `DEBUG_MAILBOX` au `ServerStartedEvent`, et `insertMailbox` / `deleteMailboxEntry` appellent un nouveau helper `syncMailboxToSavedData()` pour que chaque mutation de mailbox en debug atterrisse immédiatement sur disque.

