A professional Minecraft plugin that enables players to create and manage item orders with a beautifully designed GUI system. Perfect for survival servers looking to streamline item trading and marketplace functionality.
- 📦 Order Management System: Players can create custom item orders with specific quantities and prices
- 💰 Economy Integration: Seamless integration with Vault for secure economy transactions
- 🎨 Beautiful GUI: Professionally designed inventory menus with color-coded elements
- 🔍 Advanced Search & Filter: Search for specific items and filter orders by multiple criteria
- 📊 Smart Sorting: Sort orders by most paid, most delivered, recently listed, or money per item
- ✅ Confirmation System: Safe delivery confirmations to prevent accidental transactions
- 🔔 Sound Effects: Custom sound effects for enhanced user experience
- 🛡️ Folia Support: Full compatibility with Folia for multi-threaded server performance
- 🌍 Localization: Full multi-language support (en.yml, tr.yml) with configurable defaults
- ⚙️ Highly Configurable: Extensive configuration options for customization
- Download the latest
DonutOrder-2.1.1.jarfrom the releases - Install Dependencies: Ensure you have Vault installed
- Place the JAR file in your server's
pluginsfolder - Restart your server
- Configure the plugin by editing
plugins/DonutOrder/config.yml
| Command | Aliases | Description | Permission |
|---|---|---|---|
/orders |
/order |
Open the orders menu | None |
/donutorder reload |
/dorder, /dorders |
Reload the plugin configuration | donutorder.admin |
donutorder.admin- Access to admin commands (default: op)
-
Creating an Order:
- Run
/ordersto open the main menu - Click "Your Orders" and then "New Order"
- Select the item you want to order
- Set the amount and price per item
- Confirm your order
- Run
-
Delivering Items:
- Browse orders in the main menu
- Click on an order to deliver items
- Place the items you want to deliver in the GUI
- Confirm the delivery to receive payment
-
Managing Your Orders:
- View your active orders in "Your Orders"
- Click on your order to collect delivered items
- Cancel orders if needed
- Configure disabled items in
config.yml - Customize GUI layouts, colors, and messages
- Adjust sound effects for different actions
- Set up search and filter options
The plugin offers extensive configuration options:
- Disabled Items: Prevent certain items from being ordered (e.g., spawners)
- Custom Messages: Personalize all player-facing messages
- GUI Customization: Modify menu titles, item names, lore, and slots
- Sound Effects: Configure sounds for clicks, confirmations, and notifications
- Sort Names: Customize sorting option names
- Sign Input: Configure sign-based input for searches and amounts
For detailed configuration, see the config.yml file.
- Paper API: 1.21-R0.1-SNAPSHOT
- Vault API: 1.7
- Java: 21
This plugin is built with Maven. To compile from source:
mvn clean packageThe compiled JAR will be located in the target directory.
DonutOrder/
├── src/main/java/me/clanify/donutOrder/
│ ├── cmd/ # Command handlers
│ ├── gui/ # GUI menu implementations
│ ├── store/ # Data managers and storage
│ ├── catalog/ # Item catalog system
│ ├── data/ # Data models and types
│ ├── input/ # Chat and sign input handlers
│ └── util/ # Utility classes
├── src/main/resources/
│ └── plugin.yml # Plugin metadata
├── config.yml # Configuration file
└── pom.xml # Maven build configuration
- Security & Stability Overhaul (Major Update):
- Transaction Atomicity: Fixed critical "item loss" exploit in delivery menus (Bedrock & Java).
- Data Integrity: Implemented
AtomicFileUtilto prevent data corruption on server crashes. - Audit Logging: Added
audit.logto track all Order creations, cancellations, and deliveries. - Menu Manager: Centralized GUI handling; safe closure on reload/disable.
- Concurrency: Reinforced thread safety for Folia support.
- Security Audit & Hardening:
- Transaction Atomicity: Strict "Validate -> Payout -> Commit" flow to prevent "Money glitch" or "Item loss".
- Input Safety: Fixed potential memory leaks and async errors in
ChatInputManager(Thread-safe maps). - Lifecycle Management: Improved
onDisablecleanup; open plugin GUIs are now force-closed on reload/stop. - Codebase Cleanup: Removed legacy checks and verified strict lock ordering.
- Localization:
- Moved ALL hardcoded messages to
lang/en.ymlandlang/tr.yml. - Added
default-languagesetting inconfig.yml. - Localized GUI Titles (e.g., "{player}'s Order" adapts to language).
- Moved ALL hardcoded messages to
- Security & Exploits:
- Fail-Safe Mode: New global try-catch system prevents item theft if a GUI crashes.
- Reload Safety: Automatically closes all order menus on plugin reload/disable.
- Blocked Items: Added default blocking for Bedrock, Spawners, Command Blocks, etc.
- UUID Locking: Fixed race conditions where multiple players could claim the same order.
- GUI Improvements:
- "Item Selection" menu now uses Vanilla item names (Client-side language).
- "Order List" menus use consistent localized headers.
- Folia Support: Full compatibility with Folia 1.21.11+
- Security Hardening:
- Patched "Ghost Item" and duplication exploits.
- Added Drag Protection to all menus.
- Implemented Sign Input timeouts.
- Added strict Economy limits (Max Order Size/Price).
- Refactoring:
- Global scheduler implementation.
- Enhanced config system.
- Current stable release
- Full Folia support
- Enhanced GUI system
- Improved order management
- Bug fixes and performance improvements
Made with ❤️ by siberanka