COWMODSКаталог модов

Premium Advancements | Custom Achievements

Create unlimited custom advancements/achievements with a clean editor or GUI. Vault • +45 Triggers • MySQL • MiniMessage & Hex colors • Webhooks • 1.21+ Support

1,8 тыс.26обновлён 4 окт. 2026 г.
ПриключенияМеханики игрыУтилиты

Описание

Premium Advancements
Create unlimited custom advancements with an in game & web GUI editor. No config files needed.


Why Premium Advancements?

The easiest way to add achievements, quests, and progression to your Minecraft server. 53 triggers, real-time tracking, 8 reward types, multi-tab system, Discord webhooks, and both an in-game and browser-based web editor with live tree view - all without editing a single configuration file.


Features

  • MiniMessage & Hex Colors - &#RRGGBB, gradients, rainbows, bold/italic/underline, named colors (<light_purple>) supported everywhere, in-game L menu, GUIs, broadcasts, and the web editor live preview
  • Multi-Tab System - Organize advancements across multiple tabs, each with its own icon, background, and namespace
  • Vanilla Advancement Viewer - Minecraft's built-in advancements (Story, Adventure, Nether, End, Husbandry) loaded read-only with correct icons, positions, and tree connections
  • In-Game GUI Editor - 6 screens: main list, tab selector, create wizard, edit, confirm delete, stats viewer
  • Web Editor (Browser-Based) - Full visual editor with live tree view, drag & drop, undo/redo, import/export JSON, icon browser, tab management
  • 53 Trigger Types - Block break/place, entity kill/breed/tame, items, enchanting, dimensions, biome entry, WorldGuard regions, vanilla advancement chaining, travel distance, playtime, login streaks, placeholders, and more. See the full list on the wiki.
  • Progression Tracking - Counter-based progress saved across sessions; cumulative distance (glide/swim/climb/travel)
  • 8 Reward Types - Console commands, Vault money, items (with enchants/name/lore/CMD), LuckPerms permissions, PlayerPoints, weighted random reward pools, global broadcast, Discord webhooks
  • Discord Webhook Integration - Send customizable embeds on advancement completion, per-advancement toggle, custom embed with %player% and %advancement% placeholders
  • Notifications - Toast popups, chat announcements, action bar progress
  • Dependencies - Chain advancements with prerequisites for progression systems
  • Filters - Block/item/entity type filters, world restrictions, permission gates, Custom Model Data ( ItemsAdder/Oraxen), enchantment type/level, potion effect/amplifier, death cause, villager profession, bed color, sheep color, dimension, travel mode, MythicMobs mob filter (v3.2+)
  • Backend Mode (v3.2+) - Hide custom tabs from the vanilla advancements GUI (hide-tabs-from-vanilla-gui) to use the plugin purely as an advancement backend, and silent grants (/padv give ... --silent) for scripted/plugin-driven grants
  • Hidden Advancements - Invisible until all prerequisites are met
  • Visual Tree - Customizable x/y positions and connection targets for a clean advancement display
  • Database - SQLite (file-based, easy) or MySQL/MariaDB with HikariCP connection pool
  • Multi-Language - Built-in English and French; custom language file support
  • PlaceholderAPI - 14+ placeholders for scores, progress, ranking, and per-tab stats
  • Auto-Migration - Seamless upgrade from v1.70 with automatic backup
  • bStats - Anonymous usage statistics (toggleable)

Quick Start

  1. Install UltimateAdvancementAPI v3.0.0-beta-4+
  2. Drop the plugin in plugins/ and restart
  3. Run /padv gui to create advancements OR /padv editor for the web editor
  4. Press L in-game to view them

Screenshots

Community Showcase 💙

Check out KasaiSora's video showcase of Premium Advancements:

Two ways to create advancements fast

Via /padv gui - In-game GUIVia /padv editor - Web Editor

GUI Create Showcase-3 In-Game Showcase-5

📸 Discord Webhook Showcase

Discord-With-Rewards Discord-Without-Rewards

🌐 Web Editor Showcase

Webeditor Webeditor-tree


Commands

CommandDescription
/padv helpShow help menu
/padv guiOpen advancement management GUI (or tab selector)
/padv tabsList all advancement tabs
/padv wikiOpen the plugin wiki
/padv editorGet the web editor link
/padv editor-trust <code>Authorize a browser session
/padv info <id>Show full advancement details
/padv give <player> <advancement>Grant an advancement to a player
/padv take <player> <advancement|all>Revoke an advancement (or all) from a player
/padv list [player]List completed advancements
/padv stats [player]Open stats GUI with progress bars
/padv setplaytime <player> <minutes>Set a player's total playtime (v2.5)
/padv loginstreak [player]Check a player's login streak (v2.5)
/padv setloginstreak <player> <days>Set a player's login streak (v2.5)
/padv reloadReload configuration
/padv placeholdersList all placeholders

Permissions

PermissionDefaultDescription
premiumadvancements.adminOPFull access to all admin commands
premiumadvancements.giveOPGrant advancements
premiumadvancements.takeOPRevoke advancements
premiumadvancements.listtrueList own advancements
premiumadvancements.list.othersOPList others' advancements
premiumadvancements.statstrueView own stats
premiumadvancements.stats.othersOPView others' stats

Placeholders

PlaceholderDescription
%premiumadvancements_completed%Total completed advancements
%premiumadvancements_total%Total available advancements
%premiumadvancements_progress_<id>%Progress (e.g., 45/100)
%premiumadvancements_completed_<id>%Completed status (true/false)
%premiumadvancements_percent%Overall completion %
%premiumadvancements_percent_<id>%Per-advancement completion %
%premiumadvancements_latest%Latest completed title
%premiumadvancements_ranking%Player rank by completions
%premiumadvancements_tab_completed_<ns>%Tab completions
%premiumadvancements_tab_total_<ns>%Tab total
%premiumadvancements_tab_percent_<ns>%Tab completion %

Requirements

  • Paper, Spigot or Purpur 1.20.4+
  • Java 17+ (21+ required by MC 1.20.5+)
  • UltimateAdvancementAPI 3.0.0-beta-4+ (required)
  • Vault (optional, for money rewards)
  • PlaceholderAPI (optional, for placeholders)
  • LuckPerms (optional, for permission rewards)
  • PlayerPoints (optional, for points rewards)
  • WorldGuard (optional, for REGION_ENTER trigger)

Full Documentation

Wiki

Everything you need to know: tabs, advancements, triggers, rewards, commands, placeholders, web editor, and more.

https://wiki.skyxnetwork.net/advancements/


❤️ Donators

These amazing people help keep Premium Advancements alive. Thank you!

UsernameContribution
Soup€15

Support

Discord • Website • Wiki • GitHub


Made by Sky X Network

Галерея

All triggers Example + LayoutTitles + Description showcase

Последние версии

Все версии →
release

Premium Advancements | Custom Achievements v3.2.1

v3.2.1
4 окт. 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.2
3 окт. 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.1
10 сент. 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.0
14 авг. 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.9
3 авг. 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.8
30 июл. 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.2
28 июл. 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.1
27 июл. 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.7
27 июл. 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.6
27 июл. 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 `%`. ---