From 9d5f483cc9263c1b4ea90bf98ad6c13f43b22ff7 Mon Sep 17 00:00:00 2001 From: Isaac - The456 Date: Sun, 19 Nov 2023 01:18:48 +0000 Subject: [PATCH] add getAdvancementProgress() to PlayerAdvancementCriterionGrantEvent (#9865) this allows for simpler checks for if an advancement would be given to a player, and denying it (as the advancement grant event is non-cancelable) --- ...layerAdvancementCriterionGrantEvent.patch} | 20 +++++++++++++++++-- ...layerAdvancementCriterionGrantEvent.patch} | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) rename patches/api/{PlayerAdvancementCriterionGrantEvent.patch => Add-PlayerAdvancementCriterionGrantEvent.patch} (75%) rename patches/server/{PlayerAdvancementCriterionGrantEvent.patch => Add-PlayerAdvancementCriterionGrantEvent.patch} (95%) diff --git a/patches/api/PlayerAdvancementCriterionGrantEvent.patch b/patches/api/Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 75% rename from patches/api/PlayerAdvancementCriterionGrantEvent.patch rename to patches/api/Add-PlayerAdvancementCriterionGrantEvent.patch index a268fc4226..3e71cd1a3e 100644 --- a/patches/api/PlayerAdvancementCriterionGrantEvent.patch +++ b/patches/api/Add-PlayerAdvancementCriterionGrantEvent.patch @@ -1,8 +1,9 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 19 Jan 2018 08:15:14 -0600 -Subject: [PATCH] PlayerAdvancementCriterionGrantEvent +Subject: [PATCH] Add PlayerAdvancementCriterionGrantEvent +Co-authored-by: The456gamer diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerAdvancementCriterionGrantEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerAdvancementCriterionGrantEvent.java new file mode 100644 @@ -13,6 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +package com.destroystokyo.paper.event.player; + +import org.bukkit.advancement.Advancement; ++import org.bukkit.advancement.AdvancementProgress; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; @@ -20,18 +22,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import org.jetbrains.annotations.NotNull; + +/** -+ * Called when a player is granted a criteria in an advancement. ++ * Called after a player is granted a criteria in an advancement. ++ * If cancelled the criteria will be revoked. + */ +public class PlayerAdvancementCriterionGrantEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + @NotNull private final Advancement advancement; + @NotNull private final String criterion; ++ @NotNull private final AdvancementProgress advancementProgress; + private boolean cancel = false; + + public PlayerAdvancementCriterionGrantEvent(@NotNull Player who, @NotNull Advancement advancement, @NotNull String criterion) { + super(who); + this.advancement = advancement; + this.criterion = criterion; ++ this.advancementProgress = who.getAdvancementProgress(advancement); + } + + /** @@ -58,6 +63,17 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + return cancel; + } + ++ /** ++ * Gets the current AdvancementProgress. ++ * See {@link PlayerAdvancementCriterionGrantEvent} ++ * ++ * @return advancement progress ++ */ ++ @NotNull ++ public AdvancementProgress getAdvancementProgress() { ++ return advancementProgress; ++ } ++ + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } diff --git a/patches/server/PlayerAdvancementCriterionGrantEvent.patch b/patches/server/Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 95% rename from patches/server/PlayerAdvancementCriterionGrantEvent.patch rename to patches/server/Add-PlayerAdvancementCriterionGrantEvent.patch index bcb646647d..35a61ff910 100644 --- a/patches/server/PlayerAdvancementCriterionGrantEvent.patch +++ b/patches/server/Add-PlayerAdvancementCriterionGrantEvent.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 19 Jan 2018 08:15:29 -0600 -Subject: [PATCH] PlayerAdvancementCriterionGrantEvent +Subject: [PATCH] Add PlayerAdvancementCriterionGrantEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java