diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2023-07-11 15:08:13 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2023-07-11 15:08:13 +0100 |
| commit | 80176425b999c094f984f20642bd77380d32218e (patch) | |
| tree | 301d26cebe9125dd024013cd59b92d26c992baac /bukkit/src/main/java | |
| parent | 325b78ff6b437af01b6e542b9759db3236a119f3 (diff) | |
Fix some moddata commands blocking the main thread
Closes #520
Diffstat (limited to 'bukkit/src/main/java')
2 files changed, 37 insertions, 35 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataResetCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataResetCommandHandler.java index 548fd57d..185281f3 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataResetCommandHandler.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataResetCommandHandler.java @@ -24,18 +24,19 @@ public class AdminModdataResetCommandHandler implements CommandHandler { @Override public void handle(CommandSender sender, String[] args) { if (args.length > 4) { - QPlayer qPlayer = CommandUtils.getOtherPlayerSync(sender, args[3], plugin); - if (qPlayer == null) return; Quest quest = plugin.getQuestManager().getQuestById(args[4]); if (quest == null) { Messages.COMMAND_QUEST_START_DOESNTEXIST.send(sender, "{quest}", args[4]); return; } - QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); - questProgressFile.generateBlankQuestProgress(quest, true); - Messages.COMMAND_QUEST_ADMIN_RESET_SUCCESS.send(sender, "{player}", args[3], "{quest}", quest.getId()); - CommandUtils.doSafeSave(qPlayer, questProgressFile, plugin); + CommandUtils.useOtherPlayer(sender, args[3], plugin, qPlayer -> { + QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); + questProgressFile.generateBlankQuestProgress(quest, true); + Messages.COMMAND_QUEST_ADMIN_RESET_SUCCESS.send(sender, "{player}", args[3], "{quest}", quest.getId()); + + CommandUtils.doSafeSave(qPlayer, questProgressFile, plugin); + }); return; } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataStartCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataStartCommandHandler.java index dcd29aab..a53fd454 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataStartCommandHandler.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataStartCommandHandler.java @@ -25,42 +25,43 @@ public class AdminModdataStartCommandHandler implements CommandHandler { @Override public void handle(CommandSender sender, String[] args) { if (args.length > 4) { - QPlayer qPlayer = CommandUtils.getOtherPlayerSync(sender, args[3], plugin); - if (qPlayer == null) return; - QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); Quest quest = plugin.getQuestManager().getQuestById(args[4]); if (quest == null) { Messages.COMMAND_QUEST_START_DOESNTEXIST.send(sender, "{quest}", args[4]); return; } - QuestStartResult response = qPlayer.startQuest(quest); - switch (response) { - case QUEST_LIMIT_REACHED: - Messages.COMMAND_QUEST_ADMIN_START_FAILLIMIT.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case QUEST_ALREADY_COMPLETED: - Messages.COMMAND_QUEST_ADMIN_START_FAILCOMPLETE.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case QUEST_COOLDOWN: - Messages.COMMAND_QUEST_ADMIN_START_FAILCOOLDOWN.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case QUEST_LOCKED: - Messages.COMMAND_QUEST_ADMIN_START_FAILLOCKED.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case QUEST_ALREADY_STARTED: - Messages.COMMAND_QUEST_ADMIN_START_FAILSTARTED.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case QUEST_NO_PERMISSION: - Messages.COMMAND_QUEST_ADMIN_START_FAILPERMISSION.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - case NO_PERMISSION_FOR_CATEGORY: - Messages.COMMAND_QUEST_ADMIN_START_FAILCATEGORYPERMISSION.send(sender, "{player}", args[3], "{quest}", quest.getId()); - return; - } - Messages.COMMAND_QUEST_ADMIN_START_SUCCESS.send(sender, "{player}", args[3], "{quest}", quest.getId()); + CommandUtils.useOtherPlayer(sender, args[3], plugin, qPlayer -> { + QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); + QuestStartResult response = qPlayer.startQuest(quest); + switch (response) { + case QUEST_LIMIT_REACHED: + Messages.COMMAND_QUEST_ADMIN_START_FAILLIMIT.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case QUEST_ALREADY_COMPLETED: + Messages.COMMAND_QUEST_ADMIN_START_FAILCOMPLETE.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case QUEST_COOLDOWN: + Messages.COMMAND_QUEST_ADMIN_START_FAILCOOLDOWN.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case QUEST_LOCKED: + Messages.COMMAND_QUEST_ADMIN_START_FAILLOCKED.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case QUEST_ALREADY_STARTED: + Messages.COMMAND_QUEST_ADMIN_START_FAILSTARTED.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case QUEST_NO_PERMISSION: + Messages.COMMAND_QUEST_ADMIN_START_FAILPERMISSION.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + case NO_PERMISSION_FOR_CATEGORY: + Messages.COMMAND_QUEST_ADMIN_START_FAILCATEGORYPERMISSION.send(sender, "{player}", args[3], "{quest}", quest.getId()); + return; + } + + Messages.COMMAND_QUEST_ADMIN_START_SUCCESS.send(sender, "{player}", args[3], "{quest}", quest.getId()); - CommandUtils.doSafeSave(qPlayer, questProgressFile, plugin); + CommandUtils.doSafeSave(qPlayer, questProgressFile, plugin); + }); return; } |
