Advancements
The advancement API is based around AdvancementTabs which represent a tree of Advancements for one or more players. Each player viewing a single AdvancementTab will see the same progress as all of the others. If per player Advancements are needed, individual AdvancementTabs will need to be created.
Advancements represent a completable advancement in an AdvancementTab.
AdvancementTab
AdvancementTabs can be created and retrieved from the AdvancementManager.
// Create
AdvancementManager#createTab(String /* namespaced id */, AdvancementRoot);
// Retrieve
AdvancementManager#getTab(String /* namespaced id */);Namespaced IDs follow the format of
namespace:id, and may not have any upper case letters.
An AdvancementRoot is the origin Advancement for a tab, and has the same creation method as a regular Advancement (see below) with the exception of the background. A background is a reference to a texture file on the client, for example minecraft:textures/block/stone.png for stone block.
AdvancementRoot#<init>(Component, Component, Material, FrameType, int, int, String /* background */);Once created, an AdvancementTab may be added and removed from players as follows:
AdvancementTab#addViewer(Player);
AdvancementTab#removeViewer(Player);Advancement
Advancements can be created with their constructor and added to an AdvancementTab with an associated parent.
The parent of an
Advancementmay not be null, and it must have been added to the tab already. TheAdvancementRootis a valid parent.
Once an Advancement is registered, it can be completed.
To make an advancement show a toast, use
Advancement#showToast(Boolean)before setting it to achieved.
Last updated
Was this helpful?
