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) --- .../questprogressfile/QuestProgressFile.java | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/main/java/me/fatpigsarefat/quests/player/questprogressfile') 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