aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2023-07-11 15:08:13 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2023-07-11 15:08:13 +0100
commit80176425b999c094f984f20642bd77380d32218e (patch)
tree301d26cebe9125dd024013cd59b92d26c992baac
parent325b78ff6b437af01b6e542b9759db3236a119f3 (diff)
Fix some moddata commands blocking the main thread
Closes #520
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataResetCommandHandler.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataStartCommandHandler.java59
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;
}