Skip to main content

Delivery System

Players fulfill orders by delivering requested items. Supports partial deliveries - multiple players can contribute to the same order.

Processโ€‹

  1. Find an order - /orders GUI, /orders list, or /orders search <query>.
  2. /orders deliver <id> - opens delivery GUI showing required items, quantity needed, price/item, current progress.
  3. Select items from inventory; system validates material, enchantments, and NBT match the order.
  4. On confirm: items removed from inventory, delivery recorded, deliverer paid (if pay-on-delivery), order status updated.

Partial Deliveriesโ€‹

Each deliverer is paid proportionally to what they deliver, e.g. for a 64-item order: Player A delivers 32 (32 remain), Player B delivers 16 (16 remain), Player C delivers the last 16 (order complete).

Delivery Validation - Rejects Ifโ€‹

  • Item material/enchantments/NBT don't match order
  • Order is cancelled, completed, or expired (unless allow-deliveries-to-expired)
  • Player is delivering to their own order
  • Player is blacklisted

Concurrencyโ€‹

Optimistic locking prevents over-delivery and race conditions when multiple players deliver at once.

Notes (v1.0.3)โ€‹

  • Fixed double item return on delivery failure - only consumed items are returned, not the full stack.
  • Delivery count now reads directly from DB instead of a cached OrderItem, fixing stale-data failures on first delivery.

If delivery-history is enabled, every delivery (who/what/when) is recorded for stats - see Statistics.

See Alsoโ€‹