Skip to content

Events ​

All events fire synchronously on the target player's owner thread. All three cover only the vanilla advancement layer; category-entry unlock, activation, and claim currently publish no public events

EventTimingCancellableMutable fieldsCancellation/effectRuntime path
AdvancementGrantEventAfter the Codex advancement is resolved and is not yet complete, before the codex criterion is awardedYesNoneCancellation leaves progress untouched and returns CANCELLEDCentral AdvancementService.grant: the public operation, built-in triggers, and external trigger grant paths
AdvancementRevokeEventAfter completion is confirmed, before the criterion is revokedYesNoneCancellation keeps the completion stateCentral AdvancementService.revoke
AdvancementCompletedEventWhen Bukkit's PlayerAdvancementDoneEvent confirms a registrar-managed advancement completedNoNonePost notification, cannot be rolled backAPI grant, configured triggers, external AdvancementTrigger, or any other path that truly completes the registered advancement

The completed event is published by the advancement-completion listener, and its scope is not limited to public grant implementations. It only covers definitions known to the Codex registrar; it is not a global listener for every vanilla advancement. For grant/revoke, the player, the caller-supplied id, and the resolved namespaced key are all read-only