Auction House, ChestShops and server internals

v26.7

SMP Auktionshaus SMP ChestShops SERVER Technik

Auction House

  • FIX

    The listing fee is no longer charged when the listing itself fails.

    • All checks now run first and the fee is only withdrawn immediately before the auction is created

    The fee used to be taken before checking whether you were even holding an item or had reached your auction limit. Running `/auction add` with an empty hand cost money and listed nothing.

  • FIX

    Auctions with a price of zero or less are rejected.

    • The price must now be a valid number greater than zero

    `/auction add` accepted any number. A negative price inverted the purchase: the buyer gained money and the seller lost it. The auction menu already enforced this, the command did not.

  • FIX

    An auction can no longer pay out twice.

    • If the payment fails after claiming, the item goes back to the seller as a delivery
    • If the auction is already gone you get a notice instead of a silent transaction

    Purchase, cancellation and automatic expiry now claim the auction first and only move money and items afterwards.

  • FIX

    Sellers get their sale notification again.

    A price formatting error broke the message whenever the seller was online. The trade itself went through, but the notification never arrived and the console filled up with errors.

  • FIX

    Very long durations are calculated correctly.

    An internal overflow could make auctions with an extremely long duration count as expired straight away.

ChestShops

  • FIX

    Shop income still reaches the right owner after a name change.

    • Shops are now tied to your account; the name on the sign is display only
    • Existing shops convert themselves on first use — nobody has to rebuild their shops

    Ownership was resolved purely from the name written on the sign. Anyone who changed their name lost their income to whoever picked up the old name.

  • FIX

    Named and enchanted items are no longer taken from shops by mistake.

    • When buying, the chest owner could lose an enchanted item while the buyer received a plain one
    • When selling to a shop, your named item could be taken out of your inventory

    The shop counted stock using plain items only, but accepted any item of the same type when removing them.

Deliveries & Storage

  • FIX

    A delivery can no longer be claimed twice.

    The delivery is now claimed first and handed over afterwards.

  • FIX

    Storage reliably saves the right contents when closed.

    Saving used to rely on whichever window happened to be open at the moment of closing. The storage inventory is now passed through directly.

Technical & Performance

  • UPDATE

    Player names resolve in the background — no more server freezes when using ChestShops.

    • Known players are answered from the cache with no request at all
    • If a name is unknown the lookup continues in the background instead of blocking the server
    • Failed lookups are remembered briefly so the external service is not hammered

    Mapping a name to an account used to hit an external service on every lookup, right on the server tick. Every ChestShop click could stall the server for up to four seconds.

  • UPDATE

    The entire database layer was reworked.

    • Credentials now live in their own configuration file instead of in the code
    • Fixed a resource leak that left something behind on the database server with every single query
    • All queries are hardened against malformed or manipulated input
    • The connection is now closed cleanly on shutdown

    Affects all stored data: balance, bank, jobs, quests, storage, deliveries, auctions and perks.

  • FIX

    Fixed a memory leak on disconnect.

    • Nothing changes for you — that state was reset on reconnect anyway

    Menu, chat and combat state stayed behind after leaving and kept player data in memory permanently. On a long-running server this made usage climb steadily.