-
-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ
A list of potential Frequently Asked Questions about SuperAdvancements and Advancements in Minecraft.
More in-depth and technical explanations for Vanilla Minecraft-specific topics are available at Advancement/JSON format on the Minecraft Wiki.
Minecraft sees each advancement without a parent as its own Advancement Tab. Thus, it creates a new Advancement Tab for every advancement that doesn't have a parent, or is a "root advancement." Without mods, it is currently impossible in Vanilla Minecraft to have multiple root advancements in the same advancement tab.
Advancements without criteria, by default, can't be granted, even manually with AProgress#grant
. Thus, you cannot construct Advancements through SuperAdvancements without specifying at least one criterion. If you plan on having a custom progress for reaching your advancement, it is recommended you add the criteria ATrigger.impossible()
Both Triggers exist in Vanilla Minecraft. ATrigger.tick()
will cause the advancement criteria to be marked as complete within 1 tick of the Advancement being added to the player. ATrigger.location()
will cause the advancement criteria to be marked as complete within 1 second of the Advancement being added to the player. 1 Minecraft Tick is equal to about 1/20 of a second, or 50ms, the fastest processing speed at which Vanilla Minecraft computes server updates.
Real-life usage in Vanilla Minecraft is to automatically grant an Advancement upon joining or loading the game, albeit either trigger can be used based on loading task time.
Why don't advancement displays fetched from BukkitAdvancementManager#getAdvancement
match an API display?
Because of the way Advancements are passed through packets, completion data written in player data, and converting to and from NMS and the SuperAdvancement API, it is not possible to sustain the original display object in the NMS Advancement Object.
When fetching Advancements through BukkitAdvancementManager#getAdvancement
, the Advancement Display cannot be cast to PaperDisplay, SpigotDisplay, or BukkitDisplay, and is instead a Wrapper around the NMS Display Info for an NMS Advancement.
If you need the original display used in the Advancement, recreate it using ADisplay#getTitleAsString
and ADisplay#getDescriptionAsString
.
Copyright © 2023-Present GamerCoder. All Rights Reserved.
Licensed under GNU General Public License v3.0.