Typewriter 0.9.0-beta-175 (Java 21).
New
- Tab mode:
baseMenuIdmakes a shop a tab of a shared chassis, its layout pool and views merging underneath it, withviews,defaultViewIdand a content rectangle (contentX,contentY,contentColumns,contentRows). Left empty, a shop opens exactly as before. - A shop opened inside an extended chassis gets the ten-row canvas.
defaultNameFormatanddefaultLoreFormatonshop_definition: an item that declares no name or lore inherits the shop's format; an item that declares its own keeps it untouched. The shop format fills gaps, it never overrides an author's wording.- Both accept the same tokens:
{item},{buy},{sell},{stock},{stock_max},{currency}. ShopTransactionEvent, fired once a purchase or sale has completed — the seam other extensions plug into without Shops knowing they exist. Announced, never cancellable.notificationWebhookIdonshop_definition: Shops does not resolve it and does not know what a webhook is; the id travels on the event.
Fixes
- A layout emptied of its markers is kept rather than dropped from the pool. A shop screen whose whole grid is made of markers, or a still-empty tab, rendered as nothing at all.
- A lore line asking for an unavailable price is dropped rather than rendered empty.
- The price-token substitution shared by
priceLoreand the default formats is a single pass, so the two can no longer drift apart. - A listener that throws on
ShopTransactionEventis reported and the transaction stands — nothing undoes a paid purchase.
Compatibility
- Requires Typewriter 0.9.0-beta-175 and OmniGUI v0.12.
- Existing shops are unaffected: the tab-mode fields default to empty, which is the standalone path.
Install the attached JAR in the Typewriter extensions directory and reload the server.
Documentation: https://docs.borntocraftstudio.net/extensions/free/shop/