aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/mayaqq/ygasi/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/mayaqq/ygasi/util')
-rw-r--r--src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java b/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java
index ba3cfc8..1c3b267 100644
--- a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java
+++ b/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java
@@ -27,7 +27,26 @@ public class YgasiUtils {
}
}
- public static boolean getAdvancementProgress(ServerPlayerEntity player, String advancement) {
- return player.getAdvancementTracker().getProgress(player.getServer().getAdvancementLoader().get(new Identifier("minecraft", "ygasi/" + advancement))).isDone();
+ public static void revokeAllAdvancements(ServerPlayerEntity player, String namespace ,String path) {
+ if (player.getServer() == null) {
+ return;
+ }
+ ServerAdvancementLoader sal = player.getServer().getAdvancementLoader();
+ PlayerAdvancementTracker tracker = player.getAdvancementTracker();
+
+ for (Advancement advancement : sal.getAdvancements()) {
+ if (advancement.getId().getNamespace().equals(namespace) && advancement.getId().getPath().startsWith(path)) {
+ for (String criterion : advancement.getCriteria().keySet()) {
+ tracker.revokeCriterion(advancement, criterion);
+ }
+ }
+ }
+ }
+
+ public static boolean getAdvancementProgress(ServerPlayerEntity player, String namespace, String path) {
+ if (player.getServer() == null) {
+ return false;
+ }
+ return player.getAdvancementTracker().getProgress(player.getServer().getAdvancementLoader().get(new Identifier(namespace, path))).isDone();
}
} \ No newline at end of file