Minecraft Villager Trade Manager
Complete control over villager trading economics with custom pricing and discount prevention Minecraft Villager Trade Manager is a comprehensive Paper/Spigot plugin that gives server administrators complete control over villager trading economics. Take co
Minecraft Villager Trade Manager
Minecraft Villager Trade Manager V12.0 - Complete Villager Economy Control
Ultimate Minecraft villager trade management plugin - Control every aspect of villager trading economics with advanced features like item banning, custom pricing, and multi-database support.
---
---
🎯 Key Features
- AI Assistant: In-game help powered by Groq
🤖 AI-Powered Help System ⭐ *NEW in V12*
- Plugin Expertise: `/vtrade help askquestion "How do I ban diamond items?"` - Plugin Expertise: Natural language questions about plugin features - Plugin Expertise: Comprehensive built-in help system - Plugin Expertise: Advanced AI responses with plugin context - Plugin Expertise: Understands your server's specific configuration - Plugin Expertise: Instant answers without leaving the game - Plugin Expertise: Specialized knowledge about villager trade mechanics
Example AI Interactions: ``` /vtrade help askquestion "How do I set up custom prices for armorers?" /vtrade help askquestion "What items should I ban to prevent economy exploits?" /vtrade help askquestion "How does the villager leveling system work?" ```
💰 Universal Trade Pricing
- Legacy Support: Armorer, Butcher, Cartographer, Cleric, Farmer, Fisherman, Fletcher, Leatherworker, Librarian, Mason, Shepherd, Toolsmith, Weaponsmith - Legacy Support: Set emerald costs for any specific trade - Legacy Support: `/vt setprice armorer diamond_leggings 30` - Legacy Support: Maintains backward compatibility
🚫 Item Banning System ⭐ *NEW in V11*
- List Banned Items: Ban entire items from all villager trades - List Banned Items: Prevents enchanted variants when base item is banned - List Banned Items: `/vt banitem diamond_sword`, `/vt unbanitem diamond_sword` - List Banned Items: `/vt listbanneditems` to see all banned items
💾 Multi-Database Support ⭐ *NEW in V11*
- Automatic Fallback: Local file-based (default, recommended) - Automatic Fallback: Cloud REST API - Automatic Fallback: Direct JDBC connections ⭐ *NEW* - Automatic Fallback: SQLite backup if cloud fails
⚡ Advanced Restock System
- Unlimited Mode: `/vt instantrestock on` for immediate trade refresh - Unlimited Mode: Set restock times with `/vt restocktime <minutes>` - Unlimited Mode: Control restocks per day with `/vt restocklimit <count>` - Unlimited Mode: `/vt unlimitedrestock on` for no restrictions
🎮 Multi-Platform Compatibility
- Thread-Safe: Region-threaded scheduling for optimal performance - Thread-Safe: Full API compatibility - Thread-Safe: Legacy support maintained - Thread-Safe: All operations are concurrency-safe
📊 Real-Time Monitoring
- Dynamic Detection: Track trade statistics and patterns - Dynamic Detection: Monitor plugin performance - Dynamic Detection: Built-in system monitoring - Dynamic Detection: Automatically discovers new trades
---
📦 Installation
Requirements
- Minecraft Version or higher - Minecraft Version: Paper, Spigot, Purpur, Bukkit, or Folia - Minecraft Version: 1.20.x - 1.21.x
Steps
1. Restart the plugin JAR file 2. Restart your Minecraft server 3. Restart `Minecraft-Villager-Trade-Manager-11.0.jar` in the `plugins/` folder 4. Restart your server to generate configuration files 5. Restart `plugins/VillagerTradeManager/config.yml` as needed 6. Restart server or use `/reload` (not recommended for production)
---
⚙️ Configuration
Basic Configuration
```yaml
Enable/disable the plugin
settings: trade_management_enabled: true
Database selection
database: type: "sqlite" # Options: sqlite, supabase, postgresql
Restock settings
custom_restock_enabled: false restock_interval_minutes: 30 restock_limit_per_day: 3 unlimited_restock: false instant_restock_enabled: false ```
Database Configuration
SQLite (Recommended)
```yaml database: type: "sqlite" sqlite: file: "villager_data.db" ```
Supabase (Cloud REST API)
```yaml database: type: "supabase" supabase: url: "https://your-project.supabase.co" apiKey: "your-anon-key" serviceKey: "your-service-key" schema: "public" ```
PostgreSQL (Direct JDBC) ⭐ *NEW in V11*
```yaml database: type: "postgresql" postgresql: connectionString: "postgresql://user:password@host:5432/database" ```
---
🖥️ Commands
Main Commands
| Command | Description | Example | |---------|-------------|---------| | `/vt on/off` | Enable/disable trade management | `/vt on` | | `/vt status` | Show current settings and banned items | `/vt status` |
Trade Pricing
| Command | Description | Example | |---------|-------------|---------| | `/vt setprice <profession> <item> <cost>` | Set custom price for any trade | `/vt setprice armorer diamond_leggings 30` | | `/vt resetprice <profession> <trade>` | Reset trade to default price | `/vt resetprice armorer armorer_l4_emerald_13_diamond_boots_1` | | `/vt listtrades <profession>` | List all trades for a profession | `/vt listtrades armorer` |
Item Banning ⭐ *NEW in V11*
| Command | Description | Example | |---------|-------------|---------| | `/vt banitem <item>` | Ban item from all villager trades | `/vt banitem diamond_sword` | | `/vt unbanitem <item>` | Allow item in villager trades | `/vt unbanitem diamond_sword` | | `/vt listbanneditems` | Show all banned items | `/vt listbanneditems` |
Restock Management
| Command | Description | Example | |---------|-------------|---------| | `/vt restock on/off` | Enable custom restock system | `/vt restock on` | | `/vt restocktime <minutes>` | Set restock interval | `/vt restocktime 45` | | `/vt restocklimit <count>` | Set daily restock limit | `/vt restocklimit 5` | | `/vt unlimitedrestock on/off` | Toggle unlimited restocks | `/vt unlimitedrestock on` | | `/vt instantrestock on/off` | Enable instant restock | `/vt instantrestock on` |
Trade Analysis
| Command | Description | Example | |---------|-------------|---------| | `/vt analyzetrades` | Show trade statistics | `/vt analyzetrades` | | `/vt inspectvillager` | Analyze nearest villager's trades | `/vt inspectvillager` |
Advanced Commands
| Command | Description | Example | |---------|-------------|---------| | `/vt exporttrades json/yaml` | Export trade configuration | `/vt exporttrades json` | | `/vt tradedetection on/off/status` | Control dynamic trade detection | `/vt tradedetection status` | | `/vt cleardynamictrades` | Clear old dynamic trade data | `/vt cleardynamictrades` |
---
💾 Database Options
SQLite (Default - Recommended)
- Automatic backups database - Automatic backups required - Automatic backups for most servers - Automatic backups and maintenance
Supabase (Cloud REST API)
- Requires API keys PostgreSQL - Requires API keys communication - Requires API keys capability - Requires API keys and internet connection
PostgreSQL (Direct JDBC) ⭐ *NEW in V11*
- Requires connection string using JDBC - Requires connection string for cloud databases - Requires connection string Supabase, AWS RDS, Google Cloud SQL - Requires connection string configuration
---
🔧 Advanced Features
Item Banning System
Prevent entire items from appearing in villager trades:
```bash
Ban diamond swords (prevents all enchanted variants too)
/vt banitem diamond_sword
Ban enchanted golden apples
/vt banitem enchanted_golden_apple
Check what's banned
/vt listbanneditems
Allow items again
/vt unbanitem diamond_sword ```
Custom Pricing Examples
```bash
Simple format (recommended)
/vt setprice armorer diamond_leggings 25 /vt setprice librarian protection_4 30 /vt setprice farmer emerald 2
Database Migration
The plugin automatically handles database schema updates. When you update from older versions, the plugin will:
1. Log migration progress 2. Log migration progress 3. Log migration progress 4. Log migration progress
---
🔧 Troubleshooting
Common Issues
Plugin Not Loading
``` Error: Could not load plugin ``` Solution: Ensure Java 17+ and compatible Minecraft version
Database Connection Failed
``` Failed to establish database connection ``` Solutions: - Check database credentials - Verify network connectivity (for cloud databases) - Plugin automatically falls back to SQLite
Commands Not Working
``` /vt: Unknown command ``` Solution: Check console for permission errors or plugin conflicts
High CPU Usage
Solutions: - Reduce `trade_monitor_frequency` in config - Decrease `villager_scan_radius` - Enable Folia for better performance
Debug Mode
Enable debugging in `config.yml`: ```yaml logging: debug_database: true debug_trades: true debug_restock: true ```
Performance Tuning
```yaml performance: trade_monitor_frequency: 60 # Ticks between checks villager_scan_radius: 32 # Blocks to scan ```
---
📊 Metrics & Monitoring
Health Checks
- Performance Metrics: `http://localhost:8080/health` (if enabled) - Performance Metrics: System health checks every 30 seconds - Performance Metrics: CPU, memory, and trade statistics
Prometheus Integration
Enable Prometheus metrics in `config.yml`: ```yaml metrics: enabled: true prometheus: enabled: true ```
---
🤝 Support
Getting Help
- Community: Join Discord for support
System Requirements
- Network: +50MB (depending on trade volume) - Network: Minimal overhead - Network: ~1MB for SQLite database - Network: Required for cloud databases only
---
📈 Version History
V11.0 (Latest)
- ✅ Performance: Ban entire items from villager trades - ✅ Performance: Direct JDBC connections to databases - ✅ Performance: Improved tab completion and error messages - ✅ Performance: Resolved Supabase URL construction and authentication issues - ✅ Performance: Optimized database operations and memory usage
V10.x
- Universal trade pricing for all professions - Folia compatibility and region-threaded scheduling - Advanced restock system with instant restock - Dynamic trade detection and storage
---
📜 License
MIT License - Free for personal and commercial use.
---
🙏 Credits
- Community: AlanTheDev (Villager Trade Manager Team) - Community: Minecraft server administrators and developers - Community: SpigotMC, PaperMC, and Minecraft communities
---
🎮 Ready to master your server's villager economy? Install Villager Trade Manager V11.0 today!
---
🧱 Technical Notes
- Tested on Minecraft Folia, Paper, Purpur, Spigot, Bukkit - Supported server types: Folia, Paper, Purpur, Spigot, Bukkit - Async SQLite database persistence for settings and restock data - Thread-safe and region-threaded scheduling for Folia - Minimal CPU and memory overhead
---
🧭 Ideal Use Cases
- Economy-focused servers maintaining fair villager trading systems. - Fast-paced gameplay or event servers requiring instant trade resets. - Large-scale Folia servers needing safe, concurrent villager management.
---
🆕 V11.0 Highlights
- Fixed Compilation Issues: Control pricing for all 13 villager professions - Fixed Compilation Issues: Set custom emerald costs for any specific trade - Fixed Compilation Issues: Complete mapping of all vanilla Minecraft trades - Fixed Compilation Issues: Reliable trade identification using item hashing - Fixed Compilation Issues: Maintains backward compatibility with enchantment pricing - Fixed Compilation Issues: Universal commands supporting all professions - Fixed Compilation Issues: Resolved API compatibility problems with current Minecraft versions
---
🧾 License
This plugin is open-source and licensed under the MIT License. You are free to use, modify, and distribute with proper credit.
---
**V12.0 brings universal trade control to Villager Trade Manager —