Skip to content

v1.4

Latest

Choose a tag to compare

@RenaudRl RenaudRl released this 12 Aug 00:45

Typewriter 0.9.0-beta-175 (Java 21).

New

  • Tab mode: baseMenuId makes a shop a tab of a shared chassis, its layout pool and views merging underneath it, with views, defaultViewId and 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.
  • defaultNameFormat and defaultLoreFormat on shop_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.
  • notificationWebhookId on shop_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 priceLore and the default formats is a single pass, so the two can no longer drift apart.
  • A listener that throws on ShopTransactionEvent is 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/