From 227023cc3718c5df0662d3b0013939b30f6c0bbc Mon Sep 17 00:00:00 2001 From: Indyuce Date: Sun, 3 Apr 2022 01:58:06 +0200 Subject: [PATCH] Fixed an issue with quest bossbar --- .../Indyuce/mmocore/api/quest/PlayerQuests.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java b/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java index 86f1b213..5f36ee3e 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java +++ b/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java @@ -99,10 +99,10 @@ public class PlayerQuests implements Closable { playerData.log(Level.WARNING, "Couldn't load current quest progress (ID '" + cur.get("id").getAsString() + "')"); } } - if (jo.has("finished")) { + + if (jo.has("finished")) for (Entry entry : jo.getAsJsonObject("finished").entrySet()) finished.put(entry.getKey(), entry.getValue().getAsLong()); - } for (Entry entry : finished.entrySet()) MMOCore.log("Finished: (" + entry.getKey() + ") - at: " + entry.getValue()); @@ -144,13 +144,21 @@ public class PlayerQuests implements Closable { public void start(Quest quest) { // Close current objective progress if quest is active - close(); + closeCurrentQuest(); // Apply newest quest current = quest == null ? null : quest.generateNewProgress(playerData); updateBossBar(); } + public void closeCurrentQuest() { + if (current == null) + return; + + current.getProgress().close(); + current = null; + } + @Override public void close() { @@ -158,8 +166,7 @@ public class PlayerQuests implements Closable { bossbar.removeAll(); // Close current objective progress - if (current != null) - current.getProgress().close(); + closeCurrentQuest(); } public boolean checkCooldownAvailability(Quest quest) {