From 485f9f951e66cff8bbdfc1197f245a475e9ce5a1 Mon Sep 17 00:00:00 2001 From: "Alex \"mcmonkey\" Goodwin" Date: Thu, 13 Jan 2022 19:48:46 -0800 Subject: [PATCH] advancement command: cleaner error handling --- .../scripts/commands/player/AdvancementCommand.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/AdvancementCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/AdvancementCommand.java index 97abdff2c4..34f2b54746 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/AdvancementCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/AdvancementCommand.java @@ -236,13 +236,19 @@ else if (background != null) { toast.asBoolean(), announce.asBoolean(), hidden.asBoolean(), x.asFloat(), y.asFloat(), progressLength == null ? 1 : progressLength.asInt()); advancementHelper.register(advancement); customRegistered.put(key, advancement); + return; } - else if (delete != null) { - advancementHelper.unregister(customRegistered.get(key)); + Advancement advancement = customRegistered.get(key); + if (advancement == null) { + Debug.echoError("Invalid advancement key '" + key + "': not registered. Are you sure you registered it using the 'advancement' command previously?" + + " Note that the 'advancement' command is not for vanilla advancements."); + return; + } + if (delete != null) { + advancementHelper.unregister(advancement); customRegistered.remove(key); } else if (grant != null) { - Advancement advancement = customRegistered.get(key); for (PlayerTag target : grant.filter(PlayerTag.class, scriptEntry)) { Player player = target.getPlayerEntity(); if (player != null) { @@ -256,7 +262,6 @@ else if (grant != null) { } } else /*if (revoke != null)*/ { - Advancement advancement = customRegistered.get(key); for (PlayerTag target : revoke.filter(PlayerTag.class, scriptEntry)) { Player player = target.getPlayerEntity(); if (player != null) {