From 5c487bfa4bd2d7fa80677a17f2026dff8786f434 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sun, 10 May 2020 10:59:21 -0700 Subject: [PATCH] additions to advancement complete event closes #2213 --- .../PlayerCompletesAdvancementScriptEvent.java | 15 +++++++++++++++ .../denizen/npc/traits/SleepingTrait.java | 1 - 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCompletesAdvancementScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCompletesAdvancementScriptEvent.java index 3f531d47bf..0e99dbcd4d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCompletesAdvancementScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCompletesAdvancementScriptEvent.java @@ -3,6 +3,7 @@ import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; import com.denizenscript.denizen.events.BukkitScriptEvent; +import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; @@ -18,10 +19,13 @@ public class PlayerCompletesAdvancementScriptEvent extends BukkitScriptEvent imp // // @Regex ^on player completes advancement$ // + // @Switch name: to only fire if the advancement has the specified name. + // // @Triggers when a player has completed all criteria in an advancement. // // @Context // returns all the criteria present in this advancement. + // returns the name of advancement completed. // // @Player Always. // @@ -39,6 +43,14 @@ public boolean couldMatch(ScriptPath path) { return path.eventLower.startsWith("player completes advancement"); } + @Override + public boolean matches(ScriptPath path) { + if (!runGenericSwitchCheck(path, "name", event.getAdvancement().getKey().getKey())) { + return false; + } + return super.matches(path); + } + @Override public String getName() { return "PlayerCompletesAdvancement"; @@ -56,6 +68,9 @@ public ObjectTag getContext(String name) { criteria.addAll(event.getAdvancement().getCriteria()); return criteria; } + else if (name.equals("advancement")) { + return new ElementTag(event.getAdvancement().getKey().getKey()); + } return super.getContext(name); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java b/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java index 619b221686..4204b38241 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java +++ b/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java @@ -7,7 +7,6 @@ import net.citizensnpcs.api.trait.Trait; import net.citizensnpcs.util.PlayerAnimation; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.block.data.type.Bed; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player;