From 527cedd60c2174399b745bf623063d14b372cb4f Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Sat, 18 Jul 2020 03:28:52 -0400 Subject: [PATCH] Compass and Journal refresh shortly after login, fixes #1347 --- .../java/me/blackvein/quests/Quester.java | 2 +- .../quests/listeners/PlayerListener.java | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/main/src/main/java/me/blackvein/quests/Quester.java b/main/src/main/java/me/blackvein/quests/Quester.java index e7d4debc1..8af62d51c 100644 --- a/main/src/main/java/me/blackvein/quests/Quester.java +++ b/main/src/main/java/me/blackvein/quests/Quester.java @@ -3799,7 +3799,7 @@ public class Quester { * Will set to Quester's spawn location if bed spawn does not exist */ public void resetCompass() { - Player player = getPlayer(); + final Player player = getPlayer(); if (player == null) { return; } diff --git a/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java b/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java index f72e7cc28..cf5b9f745 100644 --- a/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java +++ b/main/src/main/java/me/blackvein/quests/listeners/PlayerListener.java @@ -783,11 +783,8 @@ public class PlayerListener implements Listener { LinkedList temp = plugin.getQuesters(); temp.add(quester); plugin.setQuesters(temp); - if (evt.getPlayer().hasPermission("quests.compass")) { - quester.resetCompass(); - } for (String s : quester.getCompletedQuests()) { - Quest q = plugin.getQuest(s); + final Quest q = plugin.getQuest(s); if (q != null) { if (quester.getCompletedTimes().containsKey(q.getName()) == false && q.getPlanner().getCooldown() > -1) { @@ -804,8 +801,18 @@ public class PlayerListener implements Listener { quester.startStageTimer(quest); } } - if (quester.hasJournal) - quester.updateJournal(); + plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { + + @Override + public void run() { + if (quester.hasJournal) { + quester.updateJournal(); + } + if (evt.getPlayer().hasPermission("quests.compass")) { + quester.resetCompass(); + } + } + }, 40L); } }