From 6d9d3734adeb29e55c3b0c7ca591bc9ce3240567 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Fri, 16 Apr 2021 15:11:14 -0700 Subject: [PATCH] PlayerTag.revoke_advancement --- .../denizen/objects/PlayerTag.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java index 524b8e3b0e..c7a36e4491 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java @@ -2513,6 +2513,29 @@ public void adjust(Mechanism mechanism) { } } + // <--[mechanism] + // @object PlayerTag + // @name revoke_advancement + // @input ElementTag + // @description + // Un-awards an advancement from the player. + // @tags + // ]> + // --> + if (mechanism.matches("revoke_advancement")) { + Advancement adv = AdvancementHelper.getAdvancement(mechanism.getValue().asString()); + if (adv == null) { + if (mechanism.shouldDebug()) { + Debug.echoError("Advancement '" + mechanism.getValue().asString() + "' does not exist."); + } + return; + } + AdvancementProgress prog = getPlayerEntity().getAdvancementProgress(adv); + for (String criteria : prog.getRemainingCriteria()) { + prog.revokeCriteria(criteria); + } + } + // <--[mechanism] // @object PlayerTag // @name fake_absorption_health