Tags
Creators
Details
v1.40
Compatibility
Required content
Changes
📝 Changelog - Premium Advancements v1.40
🎉 Major Update: 7 New Trigger Types + Critical Fixes!
This update introduces 7 brand new advancement triggers, bringing the total to 12 trigger types, plus critical bug fixes and quality-of-life improvements!
🐛 Critical Bug Fixes
Navigation & UI
- ✅ Fixed Previous Page button not working in
/padv gui- players can now navigate backwards through pages - ✅ Fixed page navigation state management - page position is now properly maintained when reopening GUI
- ✅ Fixed pagination display - current page and total pages now show correctly
Travel Distance Tracking
- ✅ Fixed TRAVEL_DISTANCE trigger saving/loading - distance and travel mode now persist correctly across server restarts
- ✅ Fixed ELYTRA mode counting walking movement - elytra flight is now properly detected and tracked separately
- ✅ Fixed BOAT mode counting walking movement - vehicle movement is now correctly isolated from walking
- ✅ Fixed distance not resetting after completion - players can now repeat travel achievements properly
Configuration System
- ✅ Fixed language file updates not preserving user customizations - merge system now correctly keeps user edits
- ✅ Fixed config merge recursion issues - deep nested sections now update properly without corruption
- ✅ Fixed backup system creating unnecessary backups - only creates backups when actual changes are detected
Advancement Registration
- ✅ Fixed Dynamic Advancement Registration - newly created advancements are now immediately functional without restart
- ✅ Fixed UI initialization order - prevents "advancement not initialized" errors
⭐ New Features
🆕 Advanced Triggers (7 NEW!)
Track items crafted by players in crafting tables or inventory crafting.
Features:
- ✅ Detects crafting table and 2x2 inventory crafting
- ✅ Supports shift-clicking (mass crafting)
- ✅ Works with vanilla and custom items (ItemsAdder/Oraxen)
- ✅ Cumulative tracking across sessions
Example:
master_crafter:
title: "Master Crafter"
description: "Craft 64 diamond pickaxes"
icon: DIAMOND_PICKAXE
trigger: CRAFT_ITEM
item: DIAMOND_PICKAXE
amount: 64
🔥 2. SMELT_ITEM Trigger
Track items smelted in furnaces, blast furnaces, and smokers.
Features:
- ✅ Works with Furnace, Blast Furnace, and Smoker
- ✅ Detects the output item (smelted result)
- ✅ Supports item filtering
- ✅ Tracks cumulative smelting
Example:
iron_smelter:
title: "Iron Smelter"
description: "Smelt 100 iron ingots"
icon: IRON_INGOT
trigger: SMELT_ITEM
item: IRON_INGOT
amount: 100
⚒️ 3. ANVIL_USE Trigger
Track anvil usage including renaming, repairing, and combining items.
Features:
- ✅ Detects all anvil operations
- ✅ Optional filtering by input item
- ✅ Optional filtering by output item
- ✅ Perfect for repair/enchant challenges
Example:
item_repairer:
title: "Item Repairer"
description: "Repair items in an anvil 10 times"
icon: ANVIL
trigger: ANVIL_USE
amount: 10
🪨 4. GRINDSTONE_USE Trigger
Track grindstone usage for removing enchantments.
Features:
- ✅ Detects enchantment removal
- ✅ Optional item filtering
- ✅ Tracks each grindstone transaction
Example:
disenchanter:
title: "Disenchanter"
description: "Remove 5 enchantments using a grindstone"
icon: GRINDSTONE
trigger: GRINDSTONE_USE
amount: 5
✨ 5. ENCHANT_ITEM Trigger
Track enchanting at enchantment tables.
Features:
- ✅ Detects enchantment table usage
- ✅ Filter by item type (optional)
- ✅ Filter by enchantment type (optional)
- ✅ Set minimum enchantment level
- ✅ Perfect for progression systems
Example:
master_enchanter:
title: "Master Enchanter"
description: "Apply Sharpness III or higher"
icon: ENCHANTING_TABLE
trigger: ENCHANT_ITEM
item: DIAMOND_SWORD
🌐 6. ENTER_DIMENSION Trigger
Track when players enter the Nether or End dimensions.
Features:
- ✅ Detects dimension changes
- ✅ Prevents duplicate triggers on teleport loops
- ✅ Supports NETHER and END dimensions
- ✅ Perfect for exploration achievements
Example:
nether_explorer:
title: "Nether Explorer"
description: "Enter the Nether for the first time"
icon: NETHERRACK
trigger: ENTER_DIMENSION
dimensionType: NETHER
Dimension types:
NETHER- The Nether dimensionEND- The End dimension
🏃 7. TRAVEL_DISTANCE Trigger
Track distance traveled by players with different movement modes.
Features:
- ✅ Persistent tracking across sessions
- ✅ Multiple travel modes (TOTAL, WALKING, BOAT, ELYTRA)
- ✅ Shows progress in action bar
- ✅ Perfect for exploration challenges
Example:
marathon_runner:
title: "Marathon Runner"
description: "Walk 10,000 blocks"
icon: GOLDEN_BOOTS
trigger: TRAVEL_DISTANCE
travelMode: WALKING
amount: 10000.0
Travel modes:
TOTAL- Any movement (default)WALKING- Walking/running onlyBOAT- Boat or vehicle movementELYTRA- Elytra flight only
Progress tracking:
- Saved every 10 blocks traveled
- Persists across server restarts
- Shows live progress in action bar
🔧 Quality of Life Improvements
Smart Features
- ✅ Smart ID Generation - advancement IDs are now automatically based on titles (e.g., "Novice Traveler" →
novice_traveler) - ✅ Admin Update Notifications - operators are now notified in chat when language files are updated on server start
- ✅ Improved Backup System - old language/config files are automatically backed up to
backups/folder with timestamps - ✅ Enhanced Error Messages - clearer feedback when advancements fail to trigger or when conditions aren't met
User Experience
- ✅ Better Progress Feedback - action bar shows real-time progress for all counter-based triggers
- ✅ Improved GUI Responsiveness - faster navigation and item updates
- ✅ Clearer Trigger Types - all triggers now show helpful descriptions in the GUI
🔧 Technical Improvements
Performance & Stability
- ✅ Improved event handling for new triggers (minimal performance impact)
- ✅ Optimized distance tracking (updates every 10 blocks instead of per-tick)
- ✅ Better caching system for dimension changes (prevents spam on rapid teleports)
- ✅ Reduced database calls with smarter progress tracking and batching
- ✅ Enhanced language file update detection system with smart merging
- ✅ Better config merge logic that preserves user customizations
- ✅ Improved error handling for dynamic advancement registration
- ✅ Fixed memory leaks in cache cleanup methods
Code Quality
- ✅ Refactored trigger handling for better maintainability
- ✅ Added comprehensive null checks for item metadata
- ✅ Improved async/sync task separation for database operations
- ✅ Better exception handling in advancement listeners
GUI Updates
- ✅ New configuration options for all 7 triggers
- ✅ Enhanced input validation
- ✅ Better error messages for invalid configurations
Language Support
- ✅ Full English translations for new triggers
- ✅ Full French translations for new triggers
- ✅ 50+ new translation keys
Database
- ✅ Improved progress tracking for distance-based advancements
- ✅ Better async saving for travel distance
- ✅ Optimized storage for cumulative tracking
🐛 Additional Bug Fixes
Trigger-Specific Fixes
- ✅ Fixed shift-click crafting not being tracked properly in CRAFT_ITEM
- ✅ Fixed dimension change spam on world teleports in ENTER_DIMENSION
- ✅ Fixed travel distance not persisting on server restart
- ✅ Improved item detection for custom model data items (ItemsAdder/Oraxen)
- ✅ Fixed SMELT_ITEM not detecting Blast Furnace and Smoker operations
- ✅ Fixed ANVIL_USE triggering on empty anvil clicks
- ✅ Fixed GRINDSTONE_USE not properly detecting enchantment removal
- ✅ Fixed ENCHANT_ITEM not validating minimum level correctly
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:CyWijK8l:YVXRuVWs"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:CyWijK8l:YVXRuVWs"
}

