Advancement



Advancements are an upcoming feature set to replace achievements.

Usage
Unlike achievements, advancements are easily customizable with the use of JSON files. Its tab-based UI can support a large number of tabs, but currently only 4-5 are planned for vanilla Minecraft: "mine & craft", "nether", "end", "combat", "engineering", and perhaps other variants. Each tab has a different background with a repeating texture.

The command has the ability to grant, revoke and test for advancements on a given player.

JSON Format
The advancements in the 'data/advancements' folder of a Minecraft world store the advancement data for that world as separate json files:

One of these JSON files is structured according to the following format: For story advancements:


 * : The root tag.
 * : The display data. (for story advancements)
 * : An item or block id to represent the icon in the advancements window.
 * : The title for this story advancement.
 * : The type of background for the icon.  for a tile with a more fancy border as it is used for the full beacon advancement.
 * : The directory for the background to use in this advancement tab (only for the root advancement)
 * : The parent advancement directory of this advancement. (Does not apply for the root advancement)
 * : The criteria that have to be met.
 * : A name given to the criteria (can be any string, should be unique)
 * : The trigger for this advancement; specifies when the game should check for advancement. (all the available triggers are listed below)
 * : All the conditions that need to be met when the trigger gets activated. (all the available conditions are listed below)
 * : A list of requirements (all the ), if there is only 1 criteria, may be omitted. With multiple criteria: requirements contains a list of lists with criteria (all criteria need to be mentioned). If all the criteria within any of the lists is met, it will complete the advancement. (basically AND grouping and OR grouping the criteria)
 * : All the rewards when this advancement is obtained.
 * : a list of recipes (strings)