diff options
Diffstat (limited to 'bukkit/src/main/java/com')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java | 26 | ||||
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/CommandUtils.java | 30 |
2 files changed, 27 insertions, 29 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java index 2dff4913..bdce5260 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java @@ -33,24 +33,24 @@ public class PlayerJoinListener implements Listener { } final Player player = event.getPlayer(); - plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, () -> { + plugin.getServer().getScheduler().runTaskLater(plugin, () -> { if (!player.isOnline()) return; - plugin.getPlayerManager().loadPlayer(player.getUniqueId()); - plugin.getServer().getScheduler().runTask(plugin, () -> { - QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId()); + plugin.getPlayerManager().loadPlayer(player.getUniqueId()).thenAccept(qPlayer -> { if (qPlayer == null) return; - // run a full check to check for any missed quest completions - plugin.getQuestCompleter().queueFullCheck(qPlayer.getQuestProgressFile()); + plugin.getScheduler().doSync(() -> { + // run a full check to check for any missed quest completions + plugin.getQuestCompleter().queueFullCheck(qPlayer.getQuestProgressFile()); - // track first quest - if (plugin.getConfig().getBoolean("options.allow-quest-track") && plugin.getConfig().getBoolean("options.quest-autotrack")) { - for (Quest quest : plugin.getQuestManager().getQuests().values()) { - if (qPlayer.hasStartedQuest(quest)) { - qPlayer.trackQuest(quest); - break; + // track first quest + if (plugin.getConfig().getBoolean("options.allow-quest-track") && plugin.getConfig().getBoolean("options.quest-autotrack")) { + for (Quest quest : plugin.getQuestManager().getQuests().values()) { + if (qPlayer.hasStartedQuest(quest)) { + qPlayer.trackQuest(quest); + break; + } } } - } + }); }); }, plugin.getQuestsConfig().getInt("options.storage.synchronisation.delay-loading", 0)); } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/CommandUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/CommandUtils.java index ca14e6ac..89c5418c 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/CommandUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/CommandUtils.java @@ -12,6 +12,7 @@ import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import java.util.*; +import java.util.concurrent.ExecutionException; import java.util.function.Consumer; public class CommandUtils { @@ -104,8 +105,9 @@ public class CommandUtils { QPlayer qPlayer = plugin.getPlayerManager().getPlayer(uuid); if (qPlayer == null) { Messages.COMMAND_QUEST_ADMIN_LOADDATA.send(sender, "{player}", username); - plugin.getPlayerManager().loadPlayer(uuid); - qPlayer = plugin.getPlayerManager().getPlayer(uuid); + try { + qPlayer = plugin.getPlayerManager().loadPlayer(uuid).get(); + } catch (InterruptedException | ExecutionException ignored) {} } if (qPlayer == null) { Messages.COMMAND_QUEST_ADMIN_NODATA.send(sender, "{player}", username); @@ -134,21 +136,17 @@ public class CommandUtils { } } - plugin.getScheduler().doAsync(() -> { - if (plugin.getPlayerManager().getPlayer(uuid) == null) { - Messages.COMMAND_QUEST_ADMIN_LOADDATA.send(sender, "{player}", username); - plugin.getPlayerManager().loadPlayer(uuid); - } - - final QPlayer qPlayer = plugin.getPlayerManager().getPlayer(uuid); - - if (qPlayer == null) { - Messages.COMMAND_QUEST_ADMIN_NODATA.send(sender, "{player}", username); - return; - } + if (plugin.getPlayerManager().getPlayer(uuid) == null) { + Messages.COMMAND_QUEST_ADMIN_LOADDATA.send(sender, "{player}", username); + plugin.getPlayerManager().loadPlayer(uuid).thenAccept((qPlayer -> { + if (qPlayer == null) { + Messages.COMMAND_QUEST_ADMIN_NODATA.send(sender, "{player}", username); + return; + } - plugin.getScheduler().doSync(() -> callback.accept(qPlayer)); - }); + plugin.getScheduler().doSync(() -> callback.accept(qPlayer)); + })); + } } public static void doSafeSave(QPlayer qPlayer, QuestProgressFile questProgressFile, BukkitQuestsPlugin plugin) { |
