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