promotional bannermobile promotional banner

Arcadia Auction House

Arcadia Auction House adds a cross-player marketplace with item listings, a mailbox for delivered purchases, and Numismatics currency support. Requires Arcadia Lib.

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

NeoForge

implementation "curse.maven:arcadia-ah-1493501:8015021"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

## [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.