Skip to main content

GUI System

All GUIs are inventory-based and update automatically. Every GUI inventory is tagged with an InventoryHolder object so the plugin identifies its own inventories by Java object reference โ€” not by title string matching. This means items cannot be taken out of any GUI regardless of how titles are customised in the language files.

Available GUIsโ€‹

GUICommandNotes
Main Orders/ordersBrowse active orders, paginated, search, filter, click to view details
Order Creation/orders createPick an item (item picker or from your inventory), quantity, price/item, optional enchantments, preview total
Order Details/orders view <id>Order info, delivery status, expiration, creator, cancel (if owner)
Delivery/orders deliver <id>Required items, inventory selection, progress, automatic validation, payment info
Collection/orders collect <id>Available items, quantity selector, inventory space check, progress
My Orders/orders myordersYour orders, status, quick collect/cancel
Admin/orders adminAll orders (incl. completed), delete, manage blacklist, view stats

Order Creation Item Pickerโ€‹

In the order-creation GUI, click the item slot to search for and pick an item. You can still click an item in your own inventory instead (that is the way to order a custom or NBT item); the picker always chooses a plain vanilla item.

Two pickers share one behavior, and the right one is chosen for each player automatically:

PickerShown toHow it works
DialogJava clients on 1.21.6+ (real client version, read through ViaVersion when it is installed) on a server with the Dialog API (Paper 1.21.7+)A native screen with a search box and a scrollable grid of items. Esc goes back to the order
ChestBedrock (via Floodgate), older Java clients, and servers without the Dialog APIA paged chest GUI (36 items per page) with Previous / Next, Search, Clear selected item and Back buttons
  • Search: matches the localized name (lang/materials.yml), the English name and the material key. In the chest picker, Search asks you to type in chat (all shows everything, cancel goes back) and gives up after 60 seconds
  • Only plain clicks are used anywhere in the picker, so touch and controller players can use all of it
  • What it offers: every item the orders module would accept. Items on the orders blacklist (blacklist.items, wildcards included) and, when configured, blocked NBT-heavy items are not listed
  • Icons: the Dialog picker shows item icons for 1.21.9+ clients on a 1.21.9+ server; other clients get plain text names
  • Picking an item sets it on the order and reopens the order GUI with your quantity and price kept. Picking a different item clears the enchantment selection (those belonged to the old item); picking the same item again changes nothing
  • Clearing the selection: use the picker's Clear selected item button, or right-click the selected item in the order GUI
  • The item slot's lore shows the hint "Click here to search for an item" / "Click to change item"

ViaVersion and Floodgate are optional and detected automatically. If the Dialog picker ever fails, the player gets the chest picker; if the picker cannot start at all, order creation still works by clicking an item in your inventory.

The picker's text is in lang/orders/messages.yml under item-picker (and new-order-gui.select-item-picker-hint / new-order-gui.change-item-hint), and is added to existing files on startup.

Paginationโ€‹

Previous/Next navigation, current/total page display, configurable items per page (gui.orders-per-page).

Case-insensitive, partial match, real-time filtering, searches ItemsAdder custom item names, and preserves the query when navigating between GUIs.

Filteringโ€‹

By status, item type, price range, or priority.

Auto-Updateโ€‹

GUIs refresh on order changes at a configurable interval (gui.update-interval, in ticks).

Configurationโ€‹

gui:
orders-per-page: 45 # Orders per page
update-interval: 20 # Update interval in ticks

Notes (v1.0.3)โ€‹

  • Fixed item dragging in search GUI via a proper drag handler.
  • ItemsAdder custom item names now display throughout all GUIs.

See Alsoโ€‹