From 5f1004168668f12f41c6deb9f026041373d45ba1 Mon Sep 17 00:00:00 2001 From: Maximusbarcz Date: Mon, 9 Jan 2023 21:48:21 +0100 Subject: Its a frog, frog in a blender! And also other stuff I guess --- src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java | 51 +++++++++++++++++++++ .../java/dev/mayaqq/ygasi/util/YgasiUtils.java | 52 ---------------------- 2 files changed, 51 insertions(+), 52 deletions(-) create mode 100644 src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java (limited to 'src/main/java/dev/mayaqq/ygasi/util') diff --git a/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java b/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java new file mode 100644 index 0000000..b2227fe --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java @@ -0,0 +1,51 @@ +package dev.mayaqq.ygasi.util; + +import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.PlayerAdvancementTracker; +import net.minecraft.server.ServerAdvancementLoader; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; + +import static dev.mayaqq.ygasi.Ygasi.LOGGER; + +public class AdvUtils { + public static void grantAdvancementCriterion(ServerPlayerEntity player, Identifier advancementIdentifier, String criterion) { + if (player.getServer() == null) { + return; + } + ServerAdvancementLoader sal = player.getServer().getAdvancementLoader(); + PlayerAdvancementTracker tracker = player.getAdvancementTracker(); + + Advancement advancement = sal.get(advancementIdentifier); + if (advancement == null) { + LOGGER.error("Trying to grant a criterion \"" + criterion + "\" for an advancement that does not exist: " + advancementIdentifier); + } else { + if (!tracker.getProgress(advancement).isDone()) { + tracker.grantCriterion(advancement, criterion); + } + } + } + + 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 diff --git a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java b/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java deleted file mode 100644 index 1c3b267..0000000 --- a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -package dev.mayaqq.ygasi.util; - -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.PlayerAdvancementTracker; -import net.minecraft.server.ServerAdvancementLoader; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.NotNull; - -import static dev.mayaqq.ygasi.Ygasi.LOGGER; - -public class YgasiUtils { - public static void grantAdvancementCriterion(@NotNull ServerPlayerEntity serverPlayerEntity, Identifier advancementIdentifier, String criterion) { - if (serverPlayerEntity.getServer() == null) { - return; - } - ServerAdvancementLoader sal = serverPlayerEntity.getServer().getAdvancementLoader(); - PlayerAdvancementTracker tracker = serverPlayerEntity.getAdvancementTracker(); - - Advancement advancement = sal.get(advancementIdentifier); - if (advancement == null) { - LOGGER.error("Trying to grant a criterion \"" + criterion + "\" for an advancement that does not exist: " + advancementIdentifier); - } else { - if (!tracker.getProgress(advancement).isDone()) { - tracker.grantCriterion(advancement, criterion); - } - } - } - - 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 -- cgit