OrderHub

A player-driven order board. Players post orders, others deliver and get paid, with money held safely in escrow.

Requirements

  • Paper, Purpur, Pufferfish or Folia, Minecraft 1.20 up to the newest version (Spigot is not supported)
  • Java 17 or newer
  • Vault and an economy plugin (EssentialsX, CMI, ...)
  • Optional: PlaceholderAPI, PlayerPoints, ItemsAdder / Oraxen / Nexo for custom items
  1. Install the plugin
    Put OrderHub.jar into your server's plugins folder and start the server once. The folder plugins/OrderHub is created with every config file.
  2. Enter your licence key
    Open plugins/OrderHub/config.yml and paste your key at license.key. You find the key on your dashboard under My licences.
  3. Reload
    Restart the server or run /orders reload. The console shows that the licence is valid and which server slot it uses.
  4. Check Vault
    Make sure Vault and an economy plugin are installed. Without an economy plugin, payments cannot work. The console prints which economy was found when the server starts.
  5. Make it yours
    Colours and menu items are in gui.yml, all texts in lang/en.yml. For German set language: de in config.yml. Every option in config.yml has a comment next to it. After any change run /orders reload.
  6. Optional: Discord webhooks
    Set discord.enabled: true and add a webhook URL. Each event (created, delivered, completed, cancelled, admin, alert) can use its own URL or be switched off.
  7. Optional: share one board between servers
    Set database.type: mysql and fill in the mysql section. All servers that use the same database share the same orders. Each server needs a free licence slot.
CommandWhat it doesPermission
/ordersOpen the order board. Aliases: /order, /oh, /orderhub.orderhub.use
/orders <search>Open the board with a search text already filled in.orderhub.use
/orders createStart creating a new order.orderhub.create
/orders myShow your own open orders.orderhub.use
/orders pickupCollect items that were delivered to your orders.orderhub.use
/orders topShow the statistics: top deliverers and top orderers.orderhub.use
/orders helpList the commands you may use.orderhub.use
/orders reloadReload config, gui, languages and re-check the licence.orderhub.admin
/orders admin list <player>List the orders of a player.orderhub.admin
/orders admin info <id>Show everything about one order.orderhub.admin
/orders admin remove <id>Cancel an order and refund the rest of the money.orderhub.admin
/orders admin delete <id> [norefund]Cancel an order and remove undelivered pickups.orderhub.admin
/orders admin purge [days]Delete finished orders older than that many days.orderhub.admin
/orders admin ban <player> | unban <player> | bansBlock players from using the board.orderhub.admin
/orders admin blacklist [item]Open the menu of forbidden items, or toggle one.orderhub.admin
/orders admin additem <id> <name>Add the item in your hand as a special (custom) item.orderhub.admin
/orders admin delitem <id> | itemsRemove or list special items.orderhub.admin
/orders admin serverorder <item> <amount> <price> [days]Post an order paid by the server itself.orderhub.admin
/orders admin log [player] | export [days]Look at the transaction log or export it as CSV.orderhub.admin
/orders admin journal [state]List payments that were interrupted by a crash or restart.orderhub.admin
/orders admin resolve <id> <done|retry|drop>Decide what happens to a stuck payment after you checked the balance.orderhub.admin
/orders admin maintenance [on|off]Pause the board while you work on the server.orderhub.admin
PermissionWhat it doesDefault
orderhub.useBrowse the board, open own orders, collect items.everyone
orderhub.createCreate orders.everyone
orderhub.deliverDeliver items to orders.everyone
orderhub.limit.<number>Raises the open-order limit of a group, for example orderhub.limit.10.nobody
orderhub.bypass.limitNo limit on open orders.op
orderhub.notifyReceives admin alerts such as stuck payments.op
orderhub.adminAll admin commands and cancelling any order.op

Needs PlaceholderAPI. Click a placeholder to copy it.

PlaceholderShows
Open orders on the board
Open orders of the player
Items the player delivered
Money the player earned by delivering
Orders the player created
Money the player spent on orders
Completed orders of the player
Items waiting for pickup
Name of the number 1 deliverer (change the 1 for other ranks)
Value of the number 1 deliverer
Name of the number 1 orderer
Value of the number 1 orderer

The plugin says my licence is invalid.

Check that the key in config.yml is complete and has no spaces. /orders license shows the reason: key not found, revoked, expired, slots full (all server slots are used, remove an old server in the dashboard) or network (the licence server could not be reached; the plugin tries again every 5 minutes).

I moved to a new server or a new host.

Open your licence in the dashboard and remove the old server. That frees the slot for the new one.

I think my key leaked.

Open your licence and choose Rotate key. The old key stops working immediately; put the new key into your config.

What happens if the licence server is down?

A server that was already licensed keeps running for up to 7 days on its saved licence. A brand-new install stays locked until the licence server answers and checks again every 5 minutes.

A payment is flagged as stuck.

That only happens when the server crashed exactly while the economy plugin was being called. Check the player's balance, then run /orders admin resolve <id> done|retry|drop.

Can I use my own language?

Copy lang/en.yml to lang/xx.yml, translate it and set language: xx.
Need help? Open a ticket on our Discord server and include your server version, the plugin version and the console lines around the problem.