Releases: XPaladiumyX/PremiumAdvancements-Releases
PremiumAdvancements v2.0
Changelog
v2.0
🎯 Major Features
📑 Multi-Tabs Support
Advancements are now organized into multiple tabs, each as a separate .yml file in the Advancements/ folder.
- Tab System - Each file in
Advancements/creates one tab in the Minecraft advancement menu (L key) - Tab Selector GUI -
/padv guinow shows a tab selection screen when multiple tabs exist. Click a tab to view/edit its advancements - Per-Tab Configuration - Each file has its own
tab.namespace,root.icon,root.title,root.description, androot.background - Global IDs - Advancement IDs are unique across all tabs. Commands like
/padv give,/padv take,/padv listwork globally - Tab Placeholders - New placeholders:
%premiumadvancements_tab_completed_<ns>%,_tab_total_<ns>%,_tab_percent_<ns>%
🔄 Auto-Migration (v1.70 → v2.0)
On first startup, if advancements.yml and/or adv-gui.yml are detected at the root:
- Backup - Old files are copied to
backups/migration_YYYY-MM-DD_HH-mm-ss/ - Merge - A single
Advancements/default.ymlis created combiningadv-gui.yml(tab config) +advancements.yml(advancements) - Rename - Old files are renamed to
.migrated(never deleted) - Notification - Admins receive an in-game message with the backup path
🌐 Web Editor - Multi-Tab Support
The web editor now fully supports multiple tabs:
- Tab Selector - Dropdown at the top of the sidebar to switch between tabs
- Tab CRUD - Create, rename, configure, and delete tabs directly from the editor
- Tab Settings - Configure namespace, title, description, root icon, and background per tab
- Move Between Tabs - In the Advanced tab of each advancement, a "Tab" dropdown lets you move advancements between tabs
- Version Gating - Multi-tab features are only visible for v2.0+ data (old v1.70 data shows a single-tab editor)
- JSON Format - New
{tabs: {namespace: {tab: {...}, advancements: {...}}}}format for upload/download
✨ Changes
/padv tabs- New command listing all tabs with namespace + advancement count/padv wiki- New command opening the plugin wiki link/padv info <id>- Now shows which tab the advancement belongs to/padv reload- Now properly reloads all tabs (unregisters and re-registers all)/padv apply- Reload completes in 1 tick instead of 20 ticks (near-instant UI update)/padv gui- Opens the TabSelectorGUI first when multiple tabs exist- GUI: "← Back to Tabs" and "≡ Tabs" buttons in the advancement list
- Advancements/ folder auto-created with a
default.ymlresource file if empty config.ymleditor section validation no longer checks foradv-gui.yml/advancements.yml- 45 trigger types - Added
MANUAL(command-only) andPLACEHOLDER(PAPI-based) triggers - 14+ placeholders - Added per-tab placeholders (
tab_completed,tab_total,tab_percent) - Web editor - Custom Minecraft-themed dropdowns and scrollbars now properly applied
- Web editor - Trust code modal shown on first visit for browser authorization
- Web editor - Advancement ID changes now properly update the map key in real-time
- Language files - Added
gui.back-to-tabs,help.commands.tabs,help.commands.wiki, PLACEHOLDER input prompts
🧩 Vanilla Advancement Integration
Minecraft's built-in advancements (Story, Adventure, Nether, End, Husbandry) are now loaded read-only:
- Auto-loaded - All 125+ vanilla advancements loaded from Bukkit on startup
- Read-only - Displayed in the web editor but cannot be edited or deleted
- Proper display - Icons, titles, descriptions, and tree positions extracted via Paper API
- Hidden toggle - Editor settings gear (⚙ in toolbar) lets you show/hide vanilla tabs in the dropdown
- Connection lines - Vanilla parent-child tree structure preserved in the editor tree view
- Hidden advancements - Properly filtered with the eye toggle in tree view
- No file persistence - Vanilla tabs are never saved to
.ymlfiles, always reloaded from Bukkit
🖥️ Web Editor - Quality of Life
- Editor settings modal - ⚙ gear button in toolbar opens settings with vanilla tabs ON/OFF toggle
- Cache busting - Nginx ETag + no-cache headers so editor updates take effect without Ctrl+F5
- version persistence - Editor version preserved in saved data so multi-tab mode survives Save → reload
- Tab row layout - Improved button sizing and alignment in tab selector (⚙, +, vanilla toggle)
- Lock icon - Vanilla advancements show a read-only lock indicator
🐛 Fixes
- CRITICAL:
AdvancementTab is already initialisederror on reload - now reuses existing RootAdvancement - CRITICAL:
/padv guitab-filtered GUI not responding to clicks - fixed title collision with unfiltered GUI - CRITICAL:
/padv applydeletingdefault.yml- file cleanup now checks YAML namespace, not just filename - CRITICAL:
/padv applyfailing withDuplicatedException- initSingleTab now catches all exceptions and falls back togetAdvancementTab() - CRITICAL:
/padv applycreating vanilla.ymlfiles on each apply - vanilla tabs are now properly flagged and excluded from file saves - CRITICAL: Web editor sidebar showed wrong trigger display - fixed Vue rendering with proper :key bindings
- CRITICAL: Web editor advancement ID renames corrupted the map - now properly updates keys and tab lists
- CRITICAL: Web editor
applyCustomDropdownsandapplyCustomScrollbarwere never called - added lifecycle hooks - File Name -
saveTabToFile()removes old files with matching YAML namespace but different filename (e.g.default.yml→premium_advancements.yml) - Version now correctly shows
2.0in plugin.yml and PlaceholderAPI expansion gui.back-to-tabsadded toen.ymlandfr.ymllanguage files- Missing
help.commands.tabsadded to both language files - ConfigUpdater: Fixed duplicated comments in config.yml (replaced broken comment re-insertion with backup+merge strategy)
- ConfigUpdater: No longer creates
adv-gui.ymlon fresh installs (prevented unnecessary migration trigger) - Fresh installs:
Advancements/default.ymlnow included as a JAR resource with 41 sample advancements - Vanilla advancement icons now properly display (GRASS_BLOCK fallback replaced with actual Minecraft item icons)
- Vanilla advancement tree positions now correctly extracted via NMS reflection
💥 Breaking Changes
- File Structure - Advancements are now in
Advancements/*.ymlinstead ofadvancements.yml+adv-gui.yml - Migration - Automatic on first startup. Old files renamed to
.migrated. Manual rollback possible frombackups/ - Paper 1.21.4+ - Plugin now requires Paper 1.21.4+ for the AdvancementDisplay API used in vanilla advancement extraction
PremiumAdvancements v1.70
Changelog
v1.70
🎯 Major Features
🌐 Web Editor (Browser-Based GUI)
Run /padv editor to get a link to the full-featured browser editor - no local server needed, works via REST API.
- Live Tree View - Visual advancement hierarchy with real-time positioning, connection lines between nodes, zoom/pan
- Drag & Drop Positioning - Toggle Move Mode (
✥button), click an advancement to pick it up, move the mouse to position it in real-time, click again to drop. ESC cancels and reverts to original position - Undo / Redo - Ctrl+Z / Ctrl+Y or top-right buttons. Works for both drags and keyboard nudges
- Arrow Key Nudge - Fine-tune positions with arrow keys (0.5 step, Shift for 1.0)
- Full Creation & Edit Wizard - Same 5-tab interface (Basic, Trigger, Display, Rewards, Advanced) with dropdowns, tag inputs, icon browser, toggle switches
- Search & Filter - Filter advancements by name/ID in the sidebar
- Import / Export JSON - Save and load full advancement presets
- Responsive Layout - Works on mobile/tablet
- SVG Controls - All buttons now use centered SVG icons (zoom, reset, eye, move)
🔔 Discord Webhook Integration
Send customizable Discord embeds when players complete advancements.
- Per-advancement toggle in the edit GUI (slot 25) and YAML config
- Customizable embed: title, description, color, thumbnail, footer
%player%and%advancement%placeholders in title/description- Global webhook URL in
webhook.yml - Works alongside all existing reward types
✨ Changes
/padv editor- Opens the web editor (generates trust token on first use)/padv editor-trust <code>- Authorizes a browser session for the editor- Webhook toggle in in-game edit GUI (slot 25, below PlayerPoints)
- Frame type (TASK/GOAL/CHALLENGE) now correctly displays from
display.framein the web editor - Stats GUI rework - Player head now shows the actual target skin, recent completions condensed to single slot showing only the most recent, progress display clamped to prevent 101/100 overflow, navigation buttons only show when relevant with proper glass decoration
🐛 Fixes
- Frame type parsing in web editor: was always showing TASK because
display.framewas not read - Various web editor UI fixes (button centering, hint layout, responsive breakpoints)
PremiumAdvancements v1.60
Changelog
v1.60
Major
- No more restart required!!! Create, edit, delete, or reposition any advancement and run
/padv reload- it applies instantly. No more waiting for server restarts to see changes. - Hidden advancements - new
hidden: trueoption. Advancements stay invisible until allrequiresprerequisites are completed. Perfect for secret end-game rewards. - Connection system - visually link any advancement to any other with
connection.target. Create tree branches with clear visual lines instead of everything connecting to root. - Multi-material support - specify multiple blocks, items, entities, inputs, or outputs in a single advancement using YAML lists (e.g. break both stone AND deepslate).
New Trigger
- CHOP_TREE - breaks any log type automatically (oak, spruce, birch, jungle, acacia, dark oak, mangrove, cherry, pale oak).
Changes
- Coordinates must now be
>= 0(both x and y). Negative values are rejected by the API. - Removed all "restart required" warnings from reload command.
Fixes
- Hidden advancement unlock messages no longer leak to chat.
- Progress restores correctly on rejoin for multi-requirement triggers.
- Circular dependency detection prevents infinite loops.
- Various GUI slot ordering, pagination, and shutdown fixes.
PremiumAdvancements v1.50
Changelog — v1.50
What's New
PlaceholderAPI Integration
8 new placeholders to display player progress anywhere on your server:
| Placeholder | Description |
|---|---|
%premiumadvancements_completed% |
Total completed advancements |
%premiumadvancements_total% |
Total available advancements |
%premiumadvancements_progress_<id>% |
Per-advancement progress |
%premiumadvancements_completed_<id>% |
Completion status (true/false) |
%premiumadvancements_percent% |
Overall completion % |
%premiumadvancements_latest% |
Name of last completed advancement |
%premiumadvancements_ranking% |
Player rank by completions |
25+ New Trigger Types
| Trigger | Description |
|---|---|
FISH |
Catch fish |
BREED |
Breed animals |
TAME |
Tame animals |
CONSUME |
Drink potions/milk/honey |
EAT |
Eat food |
HARVEST |
Harvest crops |
TRADE |
Trade with villagers |
ENCHANT |
Enchant with specific enchantment |
POTION_EFFECT |
Get a potion effect |
DEATH |
Die by specific causes |
DAMAGE_DEALT |
Deal damage |
DAMAGE_TAKEN |
Take damage |
JUMP |
Jump |
DROP_ITEM |
Drop specific items |
SHEAR |
Shear entities |
MILK |
Milk cows/mooshrooms |
ARMOR_EQUIP |
Equip armor pieces |
SNIFF |
Brush suspicious sand/gravel |
RIPTIDE |
Use riptide trident |
RAID_WIN |
Win a raid |
TARGET_BLOCK |
Hit a target block |
BELL_RING |
Ring a bell |
CROSSBOW_SHOT |
Shoot a crossbow |
FIREWORK |
Launch fireworks |
GLIDE |
Glide with elytra |
SWIM |
Swim |
CLIMB |
Climb |
SLEEP |
Sleep in a bed |
FILL_BUCKET |
Fill a bucket |
EMPTY_BUCKET |
Empty a bucket |
COMPOSTER_USE |
Use a composter |
New Commands
/padv info <id>— View advancement details and placeholder IDs/padv placeholders— List all available placeholders
GUI Improvements
- Advancement ID now shown in GUI lore for easier identification
Bug Fixes
- Fixed progress not restoring on rejoin for multi-requirement triggers
- Fixed mooshroom entity naming (
MUSHROOM_COW→MOOSHROOM) - Fixed
MUSHROOM_COWentity matching for MILK/BREED/TAME/SHEAR triggers - Fixed sound serialization bugs in BREED trigger GUI
- Fixed dot-format sound names across all advancements
- Fixed chat input listener issues
- Fixed TRAVEL_DIMENSION console error spam
- Fixed various database shutdown issues
- Many other stability improvements and bug fixes
PremiumAdvancements v1.40
📝 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: NETHERDimension 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.0Travel 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
PremiumAdvancements v1.32
🔄 Changelog – v1.32
- Fixed Woodcutter Default Advancement.
- Fixed all untranslated English texts in French
- Added automatic configuration migration system, your configs now update seamlessly between versions while preserving custom changes
- Fixed Create Advancement GUI not displaying all configuration options on first open
PremiumAdvancements v1.31
- Added Support for Formatted Chats e.g &b,&e,&c...
- Fixed SLF4J Error
- Manual advancement editing is now supported without GUI override
PremiumAdvancements v1.3
🔄 Changelog – v1.3
- Fixed update checker reliability and stability
- Added advancement dependencies system (
requires) - Prevented advancements from being unlocked before required ones
- Enabled full progression trees for custom advancements
- Added per-world advancement conditions
- Added permission-based advancement conditions
- Reworked the advancements display GUI (
/padv gui) - Advancements are now correctly listed and ordered in the GUI
- Added multi-page support to the advancements GUI
- Improved validation when unlocking advancements
- Minor internal optimizations and cleanup
PremiumAdvancements v1.2
Added Update Checker
Added Multiple Language Support
Added Custom model Data Advancement Icon Support
PremiumAdvancements v1.1
Obfuscated the code