Tags
Creators
Details
Licensed LGPL-3.0-only
Published 2 years ago
Updated 5 months ago
All versions
2.0.0
Beta
CobbleBattleRewards 2.0.02 years ago 145
Compatibility
Minecraft: Java Edition
1.21.1
Platform
Fabric
Supported environments
Server-side
Singleplayer
Required content
Any compatible version
Any compatible version
Any compatible version
Any compatible version
Changes
CobbleBattleRewards Update: 2.0.0
Core Recode & Advanced Reward Features
A config reset is required as the structure of the mod has changed
CobbleBattleRewards Fixes
- Rewritten Core Engine: Unified battle and reward processing into a single
BattleStatestructure for cleaner, more maintainable event handling. - Condition-Based Rewards: Added
conditionsfiltering to trigger rewards based on any Pokémon property (species, type, form, etc.) for highly customizable loot tables. - ExcludedRewards Support: Introduced
excludedRewardsto prevent unwanted reward stacking and enforce priority rules. - Enhanced Placeholder System: Expanded placeholder set with
%trigger%, improved interpolation for%coords%,%chance%, and dynamic battle-type tagging. - Cooldown Messaging: Fixed time‐remaining calculation and messaging template fallbacks to ensure accurate feedback on reward cooldowns.
- Optimized Cleanup Scheduler: Upgraded battle cleanup logic to reliably purge inactive or resolved battles after 30 minutes using a dedicated scheduled executor.
- Dynamic Property Extraction: Refactored
createDynamicPropertieswith reflection fallback and extractor functions to handle new Pokémon aspects and preserve full property snapshots. - Expanded Event Coverage: Subscribed to
POKEMON_SENT_POSTandBATTLE_FAINTEDfor immediate state updates and detailed faint‐event logging. - Performance Improvements: Migrated state and cooldown maps to
ConcurrentHashMapand offloaded cleanup tasks to avoid main-thread blocking. - Logging & Debugging: Augmented per-step debug logs (when
debugEnabled) to trace reward determination, property mapping, and decision branches. - Robust ItemStack Parsing: Switched to CODEC-based deserialization via GSON to support complex JSON item definitions without errors.
- Streamlined Messaging: Centralized MiniMessage formatting through
sendMinimessage()for consistent in-game output across all reward types. - Refined Victory Logic: Enhanced
finalizeBattleVictoryto accurately process PVP, wild, NPC, win, loss, and forfeit scenarios without misclassification. - Config Migration Required: Major overhaul of reward filtering features means you’ll need to redo your config to take full advantage of conditions and exclusion settings.
This is a new foundation for me to build upon allowing for faster updates! Sadly some features have been removed
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:2Zbdnhhd:o59d4nqq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:2Zbdnhhd:o59d4nqq"
}

