Premium Advancements | Custom AchievementsСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (25)
release
Premium Advancements | Custom Achievements v3.2.1
v3.2.14 окт. 2026 г.271Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Что нового
Fixed {description} placeholder in messages.
release
Premium Advancements | Custom Achievements v3.2
v3.23 окт. 2026 г.44Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Что нового
# Changelog
## v3.2
### Features
!!! Updated Support to 26.3! From on now please use MINIMUM UltimateAdvancementAPI 3.0.0-beta-4 !!!
- **MythicMobs filter for the KILL trigger** - Restrict a `KILL` advancement to a specific
MythicMobs mob, faction, and/or level range. MythicMobs is a soft dependency (optional).
- Set the mob's internal name via the in-game GUI (slot 20 of the KILL editor) or the web
editor (v3.2+ gated), or directly in YAML (`mythicMob`, `mythicFaction`, `mythicMinLevel`,
`mythicMaxLevel`).
- Mob names and factions are matched case-insensitively; the GUI validates the mob ID against
the installed MythicMobs before saving.
- Kill detection uses `MythicMobDeathEvent` combined with the standard Bukkit
`LivingEntity#getKiller()` tracking, so the killer is resolved reliably even though
MythicMobs' own `getKiller()` is not populated at death time.
- If MythicMobs is missing, filtered advancements are disabled with a console warning and an
in-game admin notification , mirroring the existing WorldGuard `REGION_ENTER` behaviour.
- **UltimateAdvancementAPI 3.0.0-beta-4** - Upgraded the hard dependency from `3.0.0-beta-3` to
`3.0.0-beta-4` (API-compatible and backward-compatible with beta-3).
- **Hide custom tabs from the vanilla advancements GUI** - New `hide-tabs-from-vanilla-gui` config
option. When enabled, PremiumAdvancements custom tabs are not shown in the vanilla advancements
screen (the L key), while all advancement functionality (progression, rewards, placeholders,
webhooks, `/padv` commands) keeps working. Useful for using the plugin purely as an advancement
backend and building a custom GUI with plugins like CommandPanels.
- **Silent advancement grant** - `/padv give <player> <advancement> --silent` (also `-s`,
`--NoMessages`, `--NoFeedback`) now grants without sending the "You have been granted..."
notification or the admin success message.
- **Minecraft 26.3 support** - Added Paper/Spigot/Purpur 26.3 to the CI compatibility matrix.
- **Web editor icon library expansion** - Added ~150 new icons to the icon picker: all wood types (and
their stripped variants), copper doors/bars/chains/lanterns/golem-statue with their oxidation and waxed
variants, cut copper stairs & slabs, all 23 pottery sherds, leather/iron/golden/diamond horse armor,
10 banner patterns, 19 smithing templates (armor trims + upgrade), 16 colored bundles, 16 colored ghast
harnesses, and misc items (spawner, breeze rod, stick). The icon downloader (`scripts/download_icons.py`)
now resolves the correct inventory item textures.
- **Searchable connection target dropdown** - The "Connection Target" field in the web editor is now a single
searchable combobox: type directly in the field to filter the advancement list inline, with the first match
auto-highlighted , no more scrolling through a long list.
- **Enchanted icon glint** - New "Enchanted Glint" toggle (web editor, and `iconEnchanted: true` in YAML) that
renders the advancement icon with an enchantment glint in the vanilla advancements GUI.
### Fixes
- **Placeholder condition missing from the create GUI** - The placeholder condition slot (slot 35,
the "redstone powder") now appears in the create GUI, not just in the edit GUI of existing
advancements.
- **`REGION_ENTER` trigger not firing** - The region check now uses the player's destination block
(`PlayerMoveEvent#getTo()`) instead of a possibly-stale `player.getLocation()`, and the region
handler no longer silently swallows WorldGuard errors (it logs them). Added diagnostic logging.
- **`DisposedException` spam / memory pressure on reload** - Replaced per-unit `incrementProgression()` loops
with a single batched `incrementProgression(player, N)` call when restoring progression. A `requiredAmount:
350000` advancement previously queued 350,000 async UAA progression updates per player on load/complete - if a
`/padv reload` happened during the flush, that burst into thousands of `AdvancementTab is disposed` warnings and
allocated large amounts of memory. Each path now sends one update instead of N:
- `PlayerDataListener.onPlayerLoadCompleted` - completed/in-progress restoration uses a single call.
- `TriggerService.completeAdvancement` / `completeAdvancementForced` - "catch-up to max" uses a single call.
- `TriggerService.recheckDependents` - dependent progression sync uses a single call.
---
release
Premium Advancements | Custom Achievements v3.1
v3.110 сент. 2026 г.212Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v3.1
### Features
- **COMMAND trigger** - Fires when a player executes a specific command (e.g. `/sethome`, `/home`, `/spawn`). Configure
one or more command names via the in-game GUI, the web editor, or directly in YAML (`command: sethome`).
- Matching is case-insensitive and ignores the leading slash. A filter matches the exact command name, the full
command, or a command with arguments (`sethome` also matches `/sethome home1`). Use `sethome home1` to match only
that specific argument.
- Leave the filter empty to match any command (useful for "run X commands" counters, controlled via `amount`).
- Fully integrated with the existing filter/reward/broadcast/webhook/progression systems.
---
release
Premium Advancements | Custom Achievements v3.0
v3.014 авг. 2026 г.328Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v3.0
### Compatibility
- **Minecraft 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.5, 1.20.6 support** - The plugin now loads and runs on **Paper/Spigot/Purpur 1.20.4+** in addition
to 1.21.x and 26.x:
- **`plugin.yml`** - `api-version` lowered from `1.21` to `1.20`, which unblocks loading on 1.20.x servers
(Paper previously rejected the plugin at startup with `Unsupported API version 1.21` while keeping all
modern API behavior on newer servers).
- **`pom.xml`** - the plugin is now compiled against `paper-api 1.20.4-R0.1-SNAPSHOT` (the lowest supported
version), so any API usage missing on 1.20.4 becomes a compile error instead of a runtime
`NoSuchMethodError`/`NoSuchFieldError` on older servers. All Paper-specific code (`AdvancementDisplay`,
`PlayerTradeEvent`) already existed in 1.20.4 and remains guarded by runtime checks on plain Spigot.
- **`AdvancementTriggerListener`** - `Material.OMINOUS_BOTTLE` (added in 1.20.5) was referenced directly in the
static `DRINKABLE_ITEMS` initializer, crashing startup on 1.20.4 with `NoSuchFieldError`. The set is now
built at runtime via `Material.getMaterial("OMINOUS_BOTTLE")`, so it is silently skipped on versions where
it doesn't exist.
- **Java 17 bytecode** - the plugin is now compiled with `--release 17`, so it also loads on Java 17 servers
(the standard runtime for MC 1.20 - 1.20.4). MC 1.20.5+ still runs on Java 21+.
- **CI** - the compat matrix now covers 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.5 and 1.20.6 across
Paper/Spigot/Purpur (Java 17 image for 1.20 - 1.20.2, Java 21 for 1.20.4+), in addition to the existing
1.21.x and 26.x combinations.
### Fixes
- **Plugin failing to load on Minecraft 1.21** - Fixed a `NoSuchFieldError` crash at startup on 1.21 servers:
`Material.PALE_OAK_LOG` and other Pale Garden materials (added in 1.21.4) were referenced directly in static
field initializers, which threw `java.lang.NoSuchFieldError: Class org.bukkit.Material does not have member
field 'org.bukkit.Material PALE_OAK_LOG'` and prevented the plugin from enabling entirely.
- **`AdvancementTriggerListener`** - the `LOG_BLOCKS` set (used by `CHOP_TREE` and the GUI validation) is now
built at runtime via `Material.getMaterial(name)`, so materials that don't exist on the running server are
silently skipped instead of crashing the class initializer.
- **`AdvancementManager`** - the same runtime resolution was applied to the block types auto-assigned to
`CHOP_TREE` advancements when loading YAML files.
- Result: the plugin now loads on 1.21, 1.21.4, 26.1 and 26.2 (Pale Oak simply doesn't count toward
`CHOP_TREE` on versions where it doesn't exist).
- **Duplicate advancement grants (rewards given multiple times)** - Fixed a critical bug where a player could receive
the same advancement (and its rewards) repeatedly. Root cause: the 30-second PLACEHOLDER scheduler task ("Task #86")
called `isGranted()` without a `try/catch`. When UltimateAdvancementAPI hadn't finished loading the player yet
(asynchronous user loading, aggravated during the UAA 2.8 → 3.0.0-beta-3 migration), it threw a
`UserNotLoadedException` that crashed the whole task and left the advancement looking "not granted". On subsequent
cycles, `forceComplete()` re-granted and re-distributed rewards in a loop because it had no idempotency guard.
- **Scheduler (`PremiumAdvancements`)** - `isGranted()` is now wrapped in a `try/catch` that skips the player's
check silently when `UserNotLoadedException` (or any API error) is thrown, instead of crashing the task or
treating the advancement as unearned.
- **`TriggerService.completeAdvancementForced`** - added an idempotency guard (`alreadyCompleted` check + a database
`hasAdvancement` re-check) before granting. Rewards are no longer given when the grant throws an exception; the
player is skipped and a later cycle can retry once the user is loaded.
- **`TriggerService.completeAdvancement`** - same defensive guards applied to the normal grant path, with
`UserNotLoadedException` handled silently (no blocking error log, no reward).
---
release
Premium Advancements | Custom Achievements v2.9
v2.93 авг. 2026 г.112Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.9
### Fixes
- **Main-thread SQLite blocking during player quit** - `onPlaytimeQuit`, `onPlaytimeJoin`, and login streak processing
now run database operations asynchronously. This eliminates 15-40 second watchdog timeouts when SQLite write
contention occurs on the main thread.
- `savePlaytimeFor()` - now wraps `setPlayerData()` in `runTaskAsynchronously`
- `processStreak()` - entire body runs async, UAA API calls dispatched to main thread via `runTask`
- `incrementStreakSync()` / `resetStreakSync()` - DB writes async, in-memory cache updates stay fast
- **Removed `Thread.sleep(50)` in `PlayerDataListener.onPlayerQuit()`** - the 50ms main-thread block is eliminated;
progress sync now uses `runTaskAsynchronously`
- **Text support in placeholder conditions** - `checkPlaceholderCondition()` now supports string comparisons
(`==`, `!=`, `contains`) when the placeholder returns text instead of a number. Enables filtering triggers by
day name (`%localtime_time_E% == Fri`), player name, biome, etc.
- **Spigot compatibility for vanilla advancement display** - Fixed `ClassCastException` on Spigot when reading
vanilla advancement display data. Uses `instanceof` check with fallback to Bukkit API (`getTitle()`,
`getDescription()`, `getType()`) when Paper API is unavailable. Affects vanilla webhooks and vanilla advancement
loading in the editor.
### Fixes - Web Editor
- **Advancement disappearing after ID rename** - Fixed `_initTabIds()` stale cache issue. After renaming an
advancement ID (e.g. `new_advancement` → `test`), the non-reactive `_idSets` was never re-synced, causing
subsequent operations to overwrite `tab.advancementIds` and drop renamed advancements from the sidebar.
- **ID rename silently corrupting on duplicate** - Renaming to an ID that already exists in another tab now shows
a toast `ID "x" already exists in tab "y"` and safely reverts the ID instead of silently corrupting the
advancement object.
- **ID rename watch triggering on tab switches** - The rename watcher no longer fires when switching tabs or
creating new advancements, preventing false "ID already exists" toasts.
- **Toast disappearing too fast** - Fixed timer collision where a new toast inherited the remaining timeout of a
previous toast, causing it to vanish almost instantly.
- **Toast stacking** - Multiple toasts now stack on top of each other with slide/fade transitions instead of
replacing each other.
beta
Premium Advancements | Custom Achievements v2.8
v2.830 июл. 2026 г.23Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
WARNING FROM ON NOW YOU NEED [v3.0.0-beta-3](https://modrinth.com/plugin/ultimateadvancementapi/version/3.0.0-beta-3 ) MINIMUM of UltimateAdvancementAPI for PremiumAdvancement V2.8+ to work.
# Changelog
## v2.8
### Features
- **UltimateAdvancementAPI 3.0.0-beta-3 migration** - Full migration from UAA 2.8 to 3.0.0-beta-3.
- `createAdvancementTab(namespace, background)` - background texture now passed directly (removed from
`RootAdvancement`)
- `AdvancementDisplayBuilder` - replaces the deprecated v2.8 constructor
- `BaseAdvancement` parameter order changed to `(parent, key, maxProgression, display)`
- `registerAdvancements(root, Set<BaseAdvancement>)` - replaces varargs overload for 6+ advancements
- All runtime reflection fallback code removed (no more `NamespacedKey` workaround)
### Fixes
- **`/padv give` error on UAA 3.0** - Fixed `adv.getApiAdvancement() == null` causing
`"this advancement is not initialized"` message. The root cause was UAA 3.0 changing `createAdvancementTab(String)` to
`createAdvancementTab(NamespacedKey)`, causing silent tab creation failure.
- **Empty reward messages** - Reward confirmation messages (`money-received`, `commands-received`) no longer send empty lines to chat when left blank in the language file.
- **`/padv take <tab:adv>` not persisting** - Fixed prefix mismatch: when using tab-qualified IDs (e.g. `new_tab:new_advancement`), the DB revoke was using the raw input `"new_tab:new_advancement"` instead of the internal ID `"new_advancement"`. Also added a player-load safety check that auto-corrects any stale UAA grants.
---
release
Premium Advancements | Custom Achievements v2.7.2
v2.7.228 июл. 2026 г.43Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.7.2
### Features
- **Vanilla broadcast namespace filtering** - New `vanilla-advancements.namespaces` config section. When enabled,
only advancements from allowed namespaces (default: `minecraft:`) receive the custom broadcast. This excludes
datapack advancements from being broadcast. Per-advancement overrides in `vanilla-messages.yml` always take
priority regardless of namespace filtering.
release
Premium Advancements | Custom Achievements v2.7.1
v2.7.127 июл. 2026 г.10Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.7.1
### Bug Fixes
- **Broadcast not visible to completing player** - Fixed an issue where the custom vanilla advancement broadcast
was not shown to the player who completed the advancement (others saw it fine). Now uses per-player
`sendMessage()` for all players including the completer, and suppresses the vanilla message via
`event.message(null)` to avoid duplicates.
- **Chat plugin compatibility** - Replaced `Bukkit.broadcast()` with per-player `Player.sendMessage()` in all
broadcast paths to bypass chat formatting plugins (ChitChat, DeluxeChat, etc.) that intercept broadcast messages.
---
beta
Premium Advancements | Custom Achievements v2.7
v2.727 июл. 2026 г.15Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.7
### Bug Fixes
- **ProGuard obfuscation breaking Paper API & Adventure** - Added `-keep` rules for `io.papermc.paper.**`,
`net.kyori.adventure.**`, and `net.kyori.examination.**` in the ProGuard config. Without these, the obfuscator
would rename Paper and Adventure classes at runtime, breaking vanilla advancement webhooks, `AdvancementDisplay`
title/description retrieval, and `Bukkit.broadcast(Component)` calls.
- **Spigot compatibility** - The plugin no longer crashes on startup or during runtime on Spigot servers:
- `PlayerAdvancementDoneEvent` webhook listener registered only if the event class exists (Paper-only)
- `PlayerTradeEvent` TRADE trigger moved to `PaperCompatibility` listener (registered only on Paper)
- `Adventure API` bundled directly in the JAR (unshaded) for Spigot servers that lack it
- `sendActionBar(String)` and `Bukkit.broadcast(Component)` wrapped with fallbacks for Spigot
- **`vanillaAdv.getDisplay()` null safety** - Added individual null checks and try-catch for `display.title()` and
`display.description()` to handle edge cases where Paper API returns null Components.
alpha
Premium Advancements | Custom Achievements v2.6
v2.627 июл. 2026 г.13Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.6
### Features
- **Global vanilla advancement broadcast** - New `vanilla-advancements` section in `config.yml`:
- `enabled`: Global toggle for the default broadcast message (per-advancement overrides in `vanilla-messages.yml`
still work independently via `/padv gui`)
- `message`: Default broadcast format for all vanilla advancements, supports all color formats
(`&#RRGGBB`, `<gradient>`, `&` codes, MiniMessage), PlaceholderAPI (`%hexnicks_nick_mm%` etc.), and
`%player%`/`%advancement%`/`%description%` placeholders
- **Namespace-based webhook filtering** — New `webhook.namespaces` section in `config.yml`:
- `enabled`: Toggle namespace filtering (default: `true`)
- `allowed`: List of namespace prefixes allowed to send Discord webhooks (default: `["minecraft:"]`)
- When enabled, only advancements belonging to allowed namespaces send webhooks
- Works for both custom advancements (via tab namespace) and vanilla advancements (`minecraft:` prefix)
- When disabled, all advancements can send webhooks (v2.5 behavior)
- **Placeholder condition for any trigger** — The existing `placeholder`/`placeholderOperator`/`placeholderValue`
fields now work as an **optional condition** on any trigger type (not just `PLACEHOLDER`). When set, the
advancement only progresses if the PlaceholderAPI placeholder meets the condition. Example:
`trigger: BREAK_BLOCK` + `placeholder: %player_y%` + `placeholderOperator: <=` + `placeholderValue: 100`
restricts the advancement to below Y=100. Configured via web editor (v2.6+ gated) or directly in YML.
### Bug Fixes
- **`UserNotLoadedException` crash on `/padv reload`** - Fixed a major race condition where UAA (
`UltimateAdvancementAPI`) would throw `UserNotLoadedException` when the plugin tried to interact with players too soon
after a reload. Added three layers of protection:
- **UAA pending guard**: Players are tracked in a pending set on join/reload; `onPlayerMove` silently skips them
until UAA finishes loading
- **Safety timeout**: Pending entries auto-expire after 15 seconds to prevent players from getting stuck
- **Tab show retry**: `showTab()` retries up to 5 times with exponential backoff (10 → 20 → 40 → 80 → 160 ticks) if
UAA hasn't loaded the player yet
- **`UserNotLoadedException` crash on `PlayerMoveEvent`** - All UAA API calls inside `onPlayerMove` (`isGranted`,
`getProgression`, `incrementProgression`) are now fully protected, eliminating spammy stack traces after join or
reload
- **`NoClassDefFoundError` when WorldGuard not installed** - Fixed `REGION_ENTER` trigger crashing with
`NoClassDefFoundError: com/sk89q/worldguard/WorldGuard` on servers without WorldGuard. Added plugin presence guard at
method entry and changed `catch (Exception)` to `catch (Throwable)` since `NoClassDefFoundError` extends `Error`, not
`Exception`
- **ConfigUpdater duplicated `vanilla-tab-order` keys** — Fixed a bug where `vanilla-` prefixed tab order keys
(`vanilla_story`, `vanilla_nether`) were incorrectly added alongside the correct keys during config updates. The
updater now skips `vanilla-tab-order` (user data, not config schema) and migrates any existing corrupted keys to
their correct names.
- **Webhook avatar missing for custom advancements** — Fixed `author.icon_url` / `thumbnail.url` in webhook.yml
not falling back to the default player avatar when PlaceholderAPI replacements leave unresolved placeholders
(e.g., `%skinsrestorer_texture_id_or_steve%`). Now auto-fills with player head if the resolved URL still
contains `%`.
---
release
Premium Advancements | Custom Achievements v2.5
v2.525 июл. 2026 г.37Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.5
### Features
- **LISTEN_MUSIC trigger** - Fires when a player inserts a music disc into a jukebox. Supports filtering by specific music disc via the existing item/material system.
- **PLAYTIME trigger** - Cumulative play time in minutes across all sessions. Checked every 30 seconds. Uses `amount`.
- **LOGIN_STREAK trigger** - Consecutive daily logins. Streak resets to 0 if a day is missed. Uses `amount`.
- **BIOME_ENTER trigger** - Enter a specific biome (e.g., `MUSHROOM_FIELDS`, `BADLANDS`). Filter by biome name via entity filter.
- **VANILLA_ADVANCEMENT trigger** - Chain custom advancements on vanilla advancement completion. Filter by exact advancement key (e.g., `minecraft:story/mine_diamond`).
- **REGION_ENTER trigger** - Enter a WorldGuard region (requires WorldGuard on the server). Filter by region name.
- **Trigger list condensed** - In-game GUI now shows first 17 triggers with "and X more triggers" count; current trigger moved to bottom.
- **53 total triggers** - Up from 48, covering the most requested trigger types.
### Fixes
- **PlaceholderAPI support in webhooks** - Custom and vanilla advancement webhooks now resolve PlaceholderAPI placeholders (e.g., nicknames from nick plugins, prefixes from LuckPerms) via `PlaceholderAPI.setPlaceholders()`
- **Vanilla broadcast preview colors** - Chat preview after setting a vanilla broadcast message now renders all color formats (`&#RRGGBB`, `<rainbow>`, `<gradient>`, `&` codes) instead of showing raw codes
- **GUI lore colors** - "Current broadcast" in the vanilla advancements GUI now displays formatted colors via `AdvancementManager.translateAll()`
- **Vanilla GUI navigation** - Added Back button (slot 49) to return to tab selector; empty navigation slots now filled with glass panes
- **ConfigUpdater language files** - Language files are now always replaced on version bump (with backup) to apply value changes like new triggers in `trigger-types`
---
release
Premium Advancements | Custom Achievements v2.4
v2.420 июл. 2026 г.37Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.4
### Features
#### Custom Broadcast Messages for Vanilla Advancements
You can now replace the default vanilla Minecraft advancement chat messages with fully customized broadcasts:
- **New GUI** (`VanillaAdvancementsGUI`): When viewing a vanilla tab in `/padv gui`, left-click any vanilla advancement to set a custom broadcast message via chat input
- **Per-advancement messages**: Each vanilla advancement can have its own unique broadcast format, stored in `vanilla-messages.yml`
- **Full formatting support**: `&#RRGGBB` hex colors, `<gradient>`, `<rainbow>`, `<color:#XXXXXX>`, `&#` codes, and all standard `&` color codes
- **PlaceholderAPI** support in custom messages
- **Hover tooltip**: `%advancement%` automatically shows the advancement description as a hover tooltip in chat (gray text on hover)
- **Placeholders**: `%player%`, `%advancement%` (with hover), `%description%`
- **Right-click reset**: Right-click a vanilla advancement in the GUI to remove its custom message and revert to default
- **Web editor integration**: Tab order for vanilla tabs synced between editor and in-game GUI
### Fixes
- Fixed vanilla tab order keys being written with `vanilla_` prefix instead of proper key names in `vanilla-tab-order`
- Fixed `vanilla-messages.yml` merge/persist to load existing file before saving (prevents data loss)
- Fixed hover tooltip on `%advancement%` being lost when color formatting is applied
release
Premium Advancements | Custom Achievements v2.3
v2.319 июл. 2026 г.19Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.3
### Features
#### Vanilla Advancement Discord Webhooks
The plugin now supports sending Discord webhooks for vanilla Minecraft advancement completions (e.g. "Stone Age", "
Diamonds!"):
- New `webhook.vanilla.enabled` option in `config.yml` (default: `false`)
- When enabled, the plugin listens for `PlayerAdvancementDoneEvent` and sends a webhook for every vanilla advancement a
player completes
- Uses the same webhook URL and formatting from `webhook.yml`
- Toggle available in the web editor's **Editor Settings** modal (gear icon) - v2.3+ only
- Toggling via the editor and running `/padv apply` will update `config.yml` automatically
#### NETHER_ROOF Trigger - Reach the Nether Roof
New trigger type that fires when a player reaches the bedrock roof of the Nether (Y=128+):
- First-time detection: only triggers once per server session
- Available as a selectable trigger in the web editor dropdown (Movement category)
- Integrates fully with all existing filter/reward/broadcast systems
### Changes
- **WebhookManager** now implements `Listener` to handle vanilla advancement events
### Fixes
- **Reward duplication glitch** - Fixed a race condition where rewards/commands could be granted multiple times for a
single advancement completion when the async database save hadn't completed before the next trigger fired. Added a
`pendingDbSave` tracking set to distinguish "save in progress" from "external reset"
release
Premium Advancements | Custom Achievements v2.2
v2.214 июл. 2026 г.54Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.2
### Features
#### DEATH Trigger - Expanded Death Causes & Entity Types
The `DEATH` trigger now supports **15 built-in death causes** and **custom entity type matching**:
- New causes: `DROWNING`, `VOID`, `EXPLOSION`, `STARVATION`, `POISON`, `WITHER`, `LIGHTNING`, `SUFFOCATION`, `MAGIC`,
`FIRE`
- `EXPLOSION` matches both `ENTITY_EXPLOSION` (creeper) and `BLOCK_EXPLOSION` (TNT)
- Set `deathCause` to any entity type (e.g. `ZOMBIE`, `ENDERMAN`, `CREEPER`) for mob-specific deaths
- In-game GUI: left-click cycles through all built-in causes, right-click opens chat input for custom entity/DamageCause
- Web editor: "Custom..." option in Death Cause dropdown (v2.2+ only) with text input field
#### Broadcast Tooltip (Hover)
When a custom broadcast message is configured, `%advancement%` now automatically shows the advancement description as a
hover tooltip (same as vanilla `[Title]` behavior). If the template already wraps `%advancement%` in a `<hover:>` tag,
the auto-hover is skipped and the user's custom hover is respected.
MiniMessage `<hover:show_text:'...'>` and `<click:open_url/run_command/suggest_command:'...'>` tags are now fully parsed
via Adventure's native MiniMessage engine, so hover/click works in custom broadcasts alongside colors, gradients, and
formatting.
### Fixes
- **RAID_WIN triggered for all players** - now only triggers for players in `raid.getHeroes()` (actual raid
participants)
- **Duplicate broadcast message** - when a custom broadcast is configured, the API's built-in chat announcement is now
suppressed (was causing double messages)
- **`&e` color code leak in broadcast** - MiniMessage titles with unclosed `<rainbow>` tags no longer capture trailing
`&e` from the broadcast template
- **Reload crash after duplicate advancement IDs** - `unregisterUI()` now properly cleans up partially-initialized tabs,
preventing permanent `AdvancementTab is already initialised` state
- **Cross-tab connections** - advancements referencing a target in a different tab now fall back to root with a clear
warning, preventing `AdvancementTab is already initialised` crash on reload
- **Web editor broadcast preview** - `<hover:>` and `<click:>` tags are now stripped from the preview (rendered in-game
only), so they don't appear as raw text
release
Premium Advancements | Custom Achievements v2.1
v2.130 июн. 2026 г.73Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# Changelog
## v2.1
### 🎯 Major Features
#### 🎨 MiniMessage & Hex Color Support (Editor + In-Game)
All color formats now work **everywhere** - web editor preview AND in-game rendering (L menu, GUIs, broadcasts,
commands).
In-game rendering supports:
- **Legacy `&` codes** - `&0`-`&f`, `&l`/`&o`/`&n`/`&m`/`&k`/`&r` (unchanged, always worked)
- **Hex `&#RRGGBB`** - Per-character hex colors rendered with proper `§x§R§R§G§G§B§B` Bukkit format
- **MiniMessage named colors** - `<red>`, `<blue>`, `<light_purple>`, `<gold>`, etc. → § codes
- **MiniMessage formatting** - `<bold>` → §l, `<italic>` → §o, `<underlined>` → §n, `<strikethrough>` → §m,
`<obfuscated>` → §k, `<reset>` → §r
- **Gradients** - `<gradient:gold:yellow>text</gradient>` - true per-character color interpolation (visible in L menu).
Works with or without closing tag
- **Rainbow** - `<rainbow>text</rainbow>` - per-character HSL hue cycling. Works with or without closing tag
- **`<color:#RRGGBB>` and `<color:name>`** - Full support for both hex and named MiniMessage color tags
Web editor preview:
- **Color/Format Picker** - 🖌️ button next to Title and Description fields with 16 color swatches + 6 format buttons (
B/I/U/S/O/R), inserts `&` codes at cursor position
- **Live preview** - `mcPreview()` renders all formats (MiniMessage, hex, gradients, rainbows, `&` codes) in editor
tabs, sidebar, tree view, tooltips
- **Version-gated** - Picker/preview only shown on v2.1+; older versions show plain text
- **`expandHex()`** - Short hex `#rgb` auto-expands to `#rrggbb` for correct gradient interpolation
- **Discord-safe** - Webhook embeds strip ALL color codes before sending to prevent raw markup in Discord
#### 📑 Tab Order (In-Game GUI Sorting)
Tabs in the advancement GUI (L key) are now sorted by configurable `tabOrder`:
- Each tab has a numeric order value (default 999)
- Vanilla tabs sorted via `config.yml` → `vanilla-tab-order` section (story: 1, nether: 2, end: 3, adventure: 4,
husbandry: 5)
- Changes survive plugin reload; persists from editor save to config
#### 🖼️ Tab Root Icon Custom Model Data
Tab settings now support `rootIconCustomModelData` for resource pack item variants on the tab root icon.
### ✨ Changes
- **Inline command editing** - Click a reward command in the editor to edit it directly, instead of deleting and
re-adding
- **Icon browser** - Browse and select icons for tab root icon directly from the editor Tab Settings modal
- **Color hints** - Title and description fields now show available color format hints
- **Color picker popover** - Closes on outside click, follows Minecraft button styling
- **Broadcast color preview** - Broadcast message field now has live `mcPreview()` rendering and a 🖌️ color picker with
full swatches + format buttons
- **Version detection** - Editor correctly gates color picker and v2.1 fields via `isV21Plus` check on `editorVersion`
### 🐛 Fixes
- **CRITICAL**: Duplicating an advancement corrupted `tab.advancementIds` - fixed `_syncIds()` dedup and removed
`deep: true` from tabs watcher
- **CRITICAL**: Action bar / Toast / Announce toggles not persisting after reload - fixed `parseSingleAdvEntry` fallback
chain
- **CRITICAL**: Empty editor after ID change - removed stale `map[oldId].id === oldId` guard
- **CRITICAL**: `mcPreview()` gradient rendering broken - `lerpColor()` now correctly expands 3-digit hex (`#rgb` →
`#rrggbb`) via `expandHex()`, applied in `parseColor()` and all hex paths
- **CRITICAL**: `mcPreview()` count stack corruption - close handler now only pops gradient/rainbow when the closing tag
name matches
- **Discord webhook** - Title and description now stripped of all color codes (`&`, `&#RRGGBB`, MiniMessage tags, `§`)
before sending, preventing raw markup in Discord embed
- Firefox modal bottom overflow - `max-height` now uses `min(85vh, 100dvh - 40px)` for dynamic viewport
- Various z-index and modal layout fixes
### 💥 Breaking Changes
- None - fully backward compatible with v2.0 data
release
Premium Advancements | Custom Achievements v2.0
v2.025 июн. 2026 г.50Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# 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 gui` now 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`, and `root.background`
- **Global IDs** - Advancement IDs are unique across all tabs. Commands like `/padv give`, `/padv take`, `/padv list` work 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.yml` is created combining `adv-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.yml` resource file if empty
- `config.yml` editor section validation no longer checks for `adv-gui.yml`/`advancements.yml`
- **45 trigger types** - Added `MANUAL` (command-only) and `PLACEHOLDER` (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 `.yml` files, 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 initialised` error on reload - now reuses existing RootAdvancement
- **CRITICAL**: `/padv gui` tab-filtered GUI not responding to clicks - fixed title collision with unfiltered GUI
- **CRITICAL**: `/padv apply` deleting `default.yml` - file cleanup now checks YAML namespace, not just filename
- **CRITICAL**: `/padv apply` failing with `DuplicatedException` - initSingleTab now catches all exceptions and falls back to `getAdvancementTab()`
- **CRITICAL**: `/padv apply` creating vanilla `.yml` files 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 `applyCustomDropdowns` and `applyCustomScrollbar` were 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.0` in plugin.yml and PlaceholderAPI expansion
- `gui.back-to-tabs` added to `en.yml` and `fr.yml` language files
- Missing `help.commands.tabs` added 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.yml` on fresh installs (prevented unnecessary migration trigger)
- Fresh installs: `Advancements/default.yml` now 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/*.yml` instead of `advancements.yml` + `adv-gui.yml`
- **Migration** - Automatic on first startup. Old files renamed to `.migrated`. Manual rollback possible from `backups/`
- **Paper 1.21.4+** - Plugin now requires Paper 1.21.4+ for the AdvancementDisplay API used in vanilla advancement extraction
release
Premium Advancements | Custom Achievements v1.70
v1.7020 июн. 2026 г.43Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# 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.frame` in 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.frame` was not read
- Various web editor UI fixes (button centering, hint layout, responsive breakpoints)
---
release
Premium Advancements | Custom Achievements v1.60
v1.6024 мая 2026 г.110Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Что нового
# 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: true` option. Advancements stay invisible until all `requires` prerequisites 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.
release
Premium Advancements | Custom Achievements v1.50
v1.5012 мая 2026 г.49Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Что нового
# 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_COW` entity 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
release
PremiumAdvancements v1.40
v1.404 янв. 2026 г.126Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Что нового
# 📝 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:**
```yaml
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:**
```yaml
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:**
```yaml
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:**
```yaml
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:**
```yaml
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:**
```yaml
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 dimension
- `END` - 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:**
```yaml
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 only
- `BOAT` - Boat or vehicle movement
- `ELYTRA` - 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
release
PremiumAdvancements 1.32
v1.3231 дек. 2025 г.27Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
# 🔄 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
release
PremiumAdvancements 1.31
v1.3130 дек. 2025 г.23Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
- Added Support for Formatted Chats e.g &b,&e,&c...
- Fixed SLF4J Error
- Manual advancement editing is now supported without GUI override
beta
PremiumAdvancements 1.3
v1.329 дек. 2025 г.31Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
## 🔄 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
beta
PremiumAdvancements 1.2
v1.229 дек. 2025 г.29Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
Added Update Checker
Added Multiple Language Support
Added Custom model Data Advancement Icon Support
alpha
PremiumAdvancements 1.1-SNAPSHOT
v1.121 дек. 2025 г.32Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
The first version