Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 2 months ago
All versions
3.0
Release
SafeTrade4 months ago 86
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
Platforms
Bukkit
Paper
Spigot
Changes
SafeTrade 3.0
Major update focused on trade safety overhaul, cash economy integration, and reliable rollback handling.
โจ Features
๐ฐ Cash Paper System
/tradecash <amount>converts Vault balance into redeemable cash paper- Cash paper can be redeemed via right-click for instant deposit
- Fully integrated with Vault economy API
๐งพ Trade Safety Holds
/tradeholddisplays active holds (items, players, timers)- Persistent
holds.jsonstorage for tracking trade states - Added full offline player support for held items
๐ Trade System Changes
- Trades now enter a safety hold state before finalization
- Completed trades are excluded from active session tracking during hold
- Rollback system now uses stored hold snapshots instead of live inventories
- Staff can rollback trades if at least one involved player is online
- Offline players receive restored items automatically on next login
- Trade completion no longer overlaps with active hold sessions
๐ฌ Discord Improvements
- Switched trade logs to embed-based messages
- Enhanced embeds now include:
- Trade ID
- Safety hold status
- Player UUIDs
- Economy values
- Item summaries
โ๏ธ Stability & Fixes
- Fixed trade cancellation when opening money GUI
- Fixed safety-hold lifecycle inconsistencies
- Fixed Maven shading issues:
- Removed duplicate MANIFEST entries
- Cleaned module-info conflicts
- Improved Vault economy handling across all systems
๐ง Internal Changes
- Trade lifecycle redesigned:
active โ hold โ completed - Clear separation introduced between:
- live trade session
- safety-hold state
- Rollback system is now fully deterministic using stored snapshots
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:6xKDbRFG:pkl5wT7m"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:6xKDbRFG:pkl5wT7m"
}

