
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
2.0.0
Compatibility
Changes
Changelog New Features
SQLite Database Integration: Custom trade prices are now stored in a persistent SQLite database (plugins/NoDiscounts/prices.db) instead of config files.
Full Enchantment Support: Added support for all enchantments, including modded ones.
Dynamic Tab Completion: Command tab completion now auto-suggests every enchantment and level combination available.
Enhanced Persistence: Custom prices survive restarts with robust database storage.
Improvements
Error Handling: Fixed ConcurrentModificationException in tab completion.
Performance: Optimized database operations and memory usage.
Compatibility: Works with all enchantments, vanilla and modded.
User Experience: Expanded command help with examples and formatting guides.
Technical Changes
Database Structure: Prices saved in custom_prices table (item_key, price).
File Location: Database auto-created at plugins/NoDiscounts/prices.db.
API Updates: Updated for Minecraft 1.21.4 (Paper/Spigot).
Memory Management: Fixed concurrent modification issues during tab completion.
Features
Disables All Villager Discounts (zombie curing, reputation, Hero of the Village).
Static Trade Prices (overused trades never inflate).
Preserves Villager Progression (leveling, unlocking trades, and refreshing).
Hero of the Village Removal (no free gifts).
Custom Pricing System
Set custom emerald prices for any enchanted book using this format:
enchanted_book_sharpness_5 → Sharpness V
enchanted_book_protection_4 → Protection IV
enchanted_book_mending_1 → Mending I
Data persists permanently in SQLite.
Commands
/nodiscounts on — Enable discount prevention
/nodiscounts off — Disable discount prevention
/nodiscounts status — Check plugin status + view custom prices
/nodiscounts setprice <item_key> <price> — Set a custom price
Database Info
Location: plugins/NoDiscounts/prices.db
Table: custom_prices (item_key TEXT PRIMARY KEY, price INTEGER)
Auto-created on first run.
Examples
/nodiscounts setprice enchanted_book_sharpness_5 40
/nodiscounts setprice enchanted_book_protection_4 35
/nodiscounts setprice enchanted_book_mending_1 50
/nodiscounts status
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8oLCKGgM:nF8KUuVm"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8oLCKGgM:nF8KUuVm"
}
