Advancement grant/revoke API
Advancement
The Advancement class lets you grant or revoke Minecraft advancements (achievements) for players, and inspect their progress.
Class Methods
grant
progress = await Advancement.grant(player, key)
Grant an advancement to a player (awards all remaining criteria).
- Parameters:
player(Player) — Target player.key(str) — Advancement key innamespace:pathformat.- Returns:
Awaitable[AdvancementProgress]
progress = await Advancement.grant(player, "minecraft:story/mine_stone")
revoke
progress = await Advancement.revoke(player, key)
Revoke an advancement from a player (removes all awarded criteria).
- Parameters:
player(Player) — Target player.key(str) — Advancement key innamespace:pathformat.- Returns:
Awaitable[AdvancementProgress]
await Advancement.revoke(player, "minecraft:story/mine_stone")
Attributes
key
- Type:
Any
The advancement's namespaced key.
AdvancementProgress
Returned by grant() and revoke(), this object tracks per-criterion completion.
Attributes
is_done
- Type:
bool
Whether all criteria have been awarded.
remaining_criteria
- Type:
set[str]
Criteria names that have not been awarded yet.
awarded_criteria
- Type:
set[str]
Criteria names that have been awarded.
Methods
award_criteria
result = await progress.award_criteria(name)
Award a single criterion.
- Parameters:
name(str) — Criterion name.- Returns:
Awaitable[bool]—Trueif the criterion was newly awarded.
revoke_criteria
result = await progress.revoke_criteria(name)
Revoke a single criterion.
- Parameters:
name(str) — Criterion name.- Returns:
Awaitable[bool]—Trueif the criterion was newly revoked.
Common Advancement Keys
| Key | Description |
|---|---|
minecraft:story/mine_stone |
Mine stone with a pickaxe |
minecraft:story/upgrade_tools |
Craft a stone pickaxe |
minecraft:story/smelt_iron |
Smelt an iron ingot |
minecraft:story/obtain_armor |
Craft any armor piece |
minecraft:story/enter_the_nether |
Enter the Nether |
minecraft:story/enter_the_end |
Enter the End |
minecraft:end/kill_dragon |
Kill the Ender Dragon |
You can also use server.get_advancement(key) to get the advancement object:
adv = await server.get_advancement("minecraft:story/mine_stone")