All versions
1.0.2
Release
Total XP Rewards 1.0.211 months ago 74
Compatibility
Minecraft: Java Edition
1.21β1.21.10
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
TotalXPRewards v1.0.2 - Optimization Update
π Performance Optimizations
- Async Caching System:
- Player XP data is now loaded asynchronously when a player joins, preventing main-thread lag.
- XP updates during gameplay are handled instantly in-memory.
- Data is saved asynchronously on player quit or server shutdown.
- Thread Safety: Database connections and write operations are now synchronized to ensure data integrity in asynchronous environments.
π¨ MiniMessage Support
- Rich Text Formatting: Added support for MiniMessage formatting.
- Use RGB colors:
<#ff0000>Red - Use Gradients:
<gradient:red:blue>Rainbow Text</gradient> - Use Click events and Hover text in broadcasts.
- Use RGB colors:
- Backwards Compatibility: Standard legacy color codes (e.g.,
&a,&l) are still fully supported. You can mix both in your configuration!
πΎ Database Improvements
- External Access Support: Added
usernameandcurrent_rankcolumns to the SQLite database. - Automatic Migration: Existing databases are automatically updated on startup. This allows external apps (typ. Node.js) to easily query player ranks.
βοΈ Configuration Safety
- Config Versioning: Added
config-versiontracking. The plugin now automatically detects old configurations and safely applies necessary updates. - Hybrid Color Support: Text formatting now supports both legacy color codes (
&) and modern MiniMessage tags simultaneously (e.g.,&bRank: <gradient:red:blue>...). - Configurable Max Rank: The "Max Rank Reached" text is now fully customizable in
lang.ymlvia themax-rankkey.
π§ Refactoring
- PlayerData Manager: Centralized data handling into a new [PlayerDataManager] class for cleaner and more maintainable code.
- Cache-First Logic: Commands (
/totalxp set/get) now utilize the cache for online players, reducing unnecessary database queries.
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:QrphsAHI:1QXCd4DE"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:QrphsAHI:1QXCd4DE"
}

