From bcbb43392cd45e03a68bc581396fc5bbac691080 Mon Sep 17 00:00:00 2001 From: fatpigsarefat Date: Sun, 23 Sep 2018 16:19:39 +0100 Subject: Players can no longer start already started quests - When clicking a quest a player has already started, it would reset - Default messages added to config.yml - New response code from the startQuest method (5) --- .../quests/commands/CommandQuests.java | 4 +++ .../java/me/fatpigsarefat/quests/obj/Messages.java | 2 ++ .../questprogressfile/QuestProgressFile.java | 29 ++++++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) (limited to 'src/main/java/me') diff --git a/src/main/java/me/fatpigsarefat/quests/commands/CommandQuests.java b/src/main/java/me/fatpigsarefat/quests/commands/CommandQuests.java index 277fc002..f8c3c04b 100644 --- a/src/main/java/me/fatpigsarefat/quests/commands/CommandQuests.java +++ b/src/main/java/me/fatpigsarefat/quests/commands/CommandQuests.java @@ -204,6 +204,7 @@ public class CommandQuests implements CommandExecutor { if (quest == null) { sender.sendMessage(Messages.COMMAND_QUEST_START_DOESNTEXIST.getMessage().replace("{quest}", args[4])); success = true; + return true; } if (args[2].equalsIgnoreCase("reset")) { questProgressFile.generateBlankQuestProgress(quest.getId()); @@ -224,6 +225,9 @@ public class CommandQuests implements CommandExecutor { } else if (response == 4) { sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILLOCKED.getMessage().replace("{player}", name).replace("{quest}", quest.getId())); return true; + } else if (response == 5) { + sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILSTARTED.getMessage().replace("{player}", name).replace("{quest}", quest.getId())); + return true; } questProgressFile.saveToDisk(); sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_SUCCESS.getMessage().replace("{player}", name).replace("{quest}", quest.getId())); diff --git a/src/main/java/me/fatpigsarefat/quests/obj/Messages.java b/src/main/java/me/fatpigsarefat/quests/obj/Messages.java index ddcb23cb..13920d6f 100644 --- a/src/main/java/me/fatpigsarefat/quests/obj/Messages.java +++ b/src/main/java/me/fatpigsarefat/quests/obj/Messages.java @@ -12,6 +12,7 @@ public enum Messages { QUEST_START_DISABLED("messages.quest-start-disabled"), QUEST_START_LOCKED("messages.quest-start-locked"), QUEST_START_COOLDOWN("messages.quest-start-cooldown"), + QUEST_START_STARTED("messages.quest-start-started"), QUEST_CANCEL_NOTSTARTED("messages.quest-cancel-notstarted"), QUEST_UPDATER("messages.quest-updater"), COMMAND_QUEST_START_DOESNTEXIST("messages.command-quest-start-doesntexist"), @@ -35,6 +36,7 @@ public enum Messages { COMMAND_QUEST_ADMIN_START_FAILCOOLDOWN("messages.command-quest-admin-start-failcooldown"), COMMAND_QUEST_ADMIN_START_FAILCOMPLETE("messages.command-quest-admin-start-failcomplete"), COMMAND_QUEST_ADMIN_START_FAILLIMIT("messages.command-quest-admin-start-faillimit"), + COMMAND_QUEST_ADMIN_START_FAILSTARTED("messages.command-quest-admin-start-failstarted"), COMMAND_QUEST_ADMIN_START_SUCCESS("messages.command-quest-admin-start-success"), COMMAND_QUEST_ADMIN_COMPLETE_SUCCESS("messages.command-quest-admin-complete-success"), COMMAND_QUEST_ADMIN_RESET_SUCCESS("messages.command-quest-admin-reset-success"); diff --git a/src/main/java/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java b/src/main/java/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java index 144093e6..f69ac257 100644 --- a/src/main/java/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java +++ b/src/main/java/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java @@ -56,39 +56,42 @@ public class QuestProgressFile { * Start a quest for the player. * * @param quest the quest to check - * @return 0 if successful, 1 if limit reached, 2 if quest is already completed, 3 if quest has cooldown, 4 if still locked + * @return 0 if successful, 1 if limit reached, 2 if quest is already completed, 3 if quest has cooldown, 4 if still locked, 5 if already started */ public int startQuest(Quest quest) { + Player p = Bukkit.getPlayer(player); if (getStartedQuests().size() >= Options.QUESTS_START_LIMIT.getIntValue()) { - if (Bukkit.getPlayer(player) != null) { - Player player = Bukkit.getPlayer(getPlayer()); - player.sendMessage(Messages.QUEST_START_LIMIT.getMessage().replace("{limit}", String.valueOf(Options.QUESTS_START_LIMIT.getIntValue()))); + if (player != null) { + p.sendMessage(Messages.QUEST_START_LIMIT.getMessage().replace("{limit}", String.valueOf(Options.QUESTS_START_LIMIT.getIntValue()))); } return 1; } QuestProgress questProgress = getQuestProgress(quest); if (!quest.isRepeatable() && questProgress.isCompletedBefore()) { - if (Bukkit.getPlayer(player) != null) { - Player player = Bukkit.getPlayer(getPlayer()); - player.sendMessage(Messages.QUEST_START_DISABLED.getMessage()); + if (player != null) { + p.sendMessage(Messages.QUEST_START_DISABLED.getMessage()); } return 2; } long cooldown = getCooldownFor(quest); if (cooldown > 0) { - if (Bukkit.getPlayer(player) != null) { - Player player = Bukkit.getPlayer(getPlayer()); - player.sendMessage(Messages.QUEST_START_COOLDOWN.getMessage().replace("{time}", String.valueOf(Quests.convertToFormat(TimeUnit.MINUTES.convert(cooldown, TimeUnit.MILLISECONDS))))); + if (player != null) { + p.sendMessage(Messages.QUEST_START_COOLDOWN.getMessage().replace("{time}", String.valueOf(Quests.convertToFormat(TimeUnit.MINUTES.convert(cooldown, TimeUnit.MILLISECONDS))))); } return 3; } if (!hasMetRequirements(quest)) { - if (Bukkit.getPlayer(player) != null) { - Player player = Bukkit.getPlayer(getPlayer()); - player.sendMessage(Messages.QUEST_START_LOCKED.getMessage()); + if (player != null) { + p.sendMessage(Messages.QUEST_START_LOCKED.getMessage()); } return 4; } + if (!questProgress.isStarted()) { + if (player != null) { + p.sendMessage(Messages.QUEST_START_STARTED.getMessage()); + } + return 5; + } questProgress.setStarted(true); for (TaskProgress taskProgress : questProgress.getTaskProgress()) { taskProgress.setCompleted(false); -- cgit v1.2.3-70-g09d2