• Delivering more items than an order still needs no longer removes extras without pay — only the remaining amount is accepted and credited
• Extra items in the delivery GUI are returned to your inventory after delivery
• Full inventory sends leftover items to your order stash as before
Code:# plugins/PerfOrders/config.yml — comments only (behavior unchanged; merge if you want clearer docs): # When deliverer puts more than needed: only the remaining amount is credited; surplus goes back to inventory (or order stash if full). return-delivery-surplus: true # When slots hold more matching items than the order still needs: only the remainder is accepted and paid; extra items are returned. allow-delivery-overfill: false
Bug fixes:
• Cancelling a delivery after putting items in a shulker no longer returns an empty shulker with loose contents in your inventory
• Your original shulker and its contents are returned correctly when you decline the delivery confirmation
• Empty message keys in messages.yml no longer send blank chat lines
Bug fixes:
• Collecting order items with a full inventory no longer loses overflow on the ground — items go to your order stash instead
Improvements:
• Chat message tells you when items were saved to stash and to use "/orders stash" to pick them up
Code:# plugins/PerfOrders/config.yml — add under overflow-stash: overflow-stash: notify-on-store: true # plugins/PerfOrders/messages.yml — add: overflow-stash-stored: "<#EAB308>Your inventory is full — <white>{amount} <#EAB308>item stack(s) were saved to your order stash. Use <white>/order stash <#EAB308>to collect them."
New features:
• /perforders list shows active orders with IDs so admins can use delete without guessing
• Admins see the order ID on every order in /order and Your Orders
• /perforders delete removes an order with optional refund and stash return flags
Code:# plugins/PerfOrders/messages.yml — add/update: admin-usage: "<#EAB308>Usage: <white>/perforders <reload|help|list [page|player] [page]|stats [player]|delete <id> [refund|norefund] [returnitems|noitems]>" admin-list-usage: "<#EAB308>Usage: <white>/perforders list [page]<gray> or <white>/perforders list <player> [page]" admin-list-header: "<#56F7A7><bold>Active orders</bold> <gray>(page {page}/{total_pages})" admin-list-header-player: "<#56F7A7><bold>Orders:</bold> <white>{player} <gray>(page {page}/{total_pages})" admin-list-entry: "<gray>#{id} <white>{owner} <gray>| <white>{amount}x {item} <gray>| <white>{delivered}/{amount} delivered <gray>| <#FFD166>{price}<gray>/ea" admin-list-empty: "<#FF6B9E>No matching orders." admin-list-footer: "<gray>Delete: <white>/perforders delete <id>" admin-delete-usage: "<#EAB308>Usage: <white>/perforders delete <orderId> [refund|norefund] [returnitems|noitems]<newline><#94A3B8>Tip: <white>/perforders list <gray>shows IDs. Default: refund + return uncollected deliveries to owner stash" # plugins/PerfOrders/gui/orders.yml — add: admin-order-id-lore: "<dark_gray>Order ID: <white>#{orderId}" # plugins/PerfOrders/gui/your_orders.yml — add: admin-order-id-lore: "<dark_gray>Order ID: <white>#{orderId}"
Bug fixes:
• Orders can no longer be created with a $0 price per item
• Server order announcements now show readable prices instead of long decimals like $250000.00
• Expired orders with uncollected deliveries can be opened again from Your Orders
• Clicking an expired order with pending items opens the collect menu directly
Improvements:
• Configurable minimum price per item (default $1)
• Chat and GUI prices use compact or locale formatting (250k, 2.5m, $250,000.00, 250.000,00)
• New orders broadcast to chat when announce is enabled in config
Code:# plugins/PerfOrders/config.yml — merge: pricing: min-price-per-item: 1.0 money-format: smart # smart | compact | us | de # plugins/PerfOrders/messages.yml — merge (English defaults): on_order_placed: "<grey>You ordered <#FF8A65>{amount} {itemType} <grey>for <#EAB308>{priceEach}<grey> each <grey>(<#EAB308>{totalPrice}<grey> total)" on_deliver: "<grey>You delivered <#FF8A65>{amount} {itemType} <grey>and received <#EAB308>{totalPrice}" order_announcement: "<#EF4444>{player} <white>has ordered <grey>x{amount} {itemType} <white>for <#10B981>{priceEach}<white> each — use <#EAB308>/order<white> to view it." pricing: min: "<#EF4444>Your order must have a minimum total price of {minPrice}" max: "<#EF4444>Your order cannot have a higher total price than {maxPrice}" min-per-item: "<#EF4444>Price per item must be at least {minPrice}" chat-prompt-price: "<#EAB308>Type the price per item in chat (min {minPrice}; e.g. 100, 10k, 1.5m), or 'cancel' to abort:" chat-invalid-price: "<#EF4444>Invalid price. Use at least {minPrice} (e.g. 100, 10k, 1.5m)."
New features:
• Added vanilla-items.survival-obtainable-only to block ordering items you cannot get in survival (spawn eggs, end portal frames, command blocks and similar items are hidden from the item picker when enabled)
Code:# plugins/PerfOrders/config.yml — under vanilla-items: vanilla-items: survival-obtainable-only: true # false = old behaviour (all vanilla items unless blacklisted) # Optional — extra manual bans (exact names): blacklisted_items: [] # config-version after plugin update: config-version: 17
Bug fixes:
• Totems, fireworks, potions and other non-block items can be ordered again in the item picker
• Blacklisted items and the exempt list still block only the materials you configure
Code:# Item selection: listed = vanilla items in Select GUI. exempt-non-solids true = totems, rockets, potions, etc. allowed. # exempt = always hidden from GUI and browser (in addition to blacklisted_items) vanilla-items: listed: true exempt-non-solids: true exempt: - BEDROCK - BARRIER
