You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perPlayer is a real per-player stock: each player trades against their own stock of an item,
and a reset (policy or resetNow) refills everyone's. Limits keep their scope (playerLimit per
player, globalLimit and the global buy/sell limits shared). The stock is stored in the shop
artifact like the shared one; nothing is synchronised between servers.
defaultRefreshTicks and the item refreshTicks set how often an open shop checks whether the
stock it shows has changed (items with a finite stock only; the item's value replaces the
default, 0 = the default, a default of 0 = never). The shop is redrawn only when a stock has
really changed, so a shop whose stocks do not move costs a few cached reads and no redraw.
The per-player stock stores only the gap to the initial stock: a stock back at its maximum has no
entry, and a reset drops every player's entries.
Item guiSlot pins the item at that slot (row by row inside the content area), on every page;
the other items keep flowing through the SHOP_ITEM markers around it. A slot outside the area
falls back to the markers.
Two identical articles no longer share one stock: an article's stock key is its position in the
shop (items, then pool), not an equality lookup. Keys already stored stay valid.
When pinned articles (guiSlot) hold every SHOP_ITEM marker, the remaining articles go on the
free cells of the content area, page after page, instead of vanishing; if nothing is free the
console logs a warning naming the shop and the article.
Item sellAllEnabled is checked by sell all: when off, the action is refused with cannotSellMessage.
The shop opening and its buttons now apply the full reset (stocks and limits) when it is due,
instead of refilling the shared stock only.
Built for Typewriter 0.9.0-beta-177, Paper, Java 21.