aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/me/fatpigsarefat/quests
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@outlook.com>2018-09-23 16:19:39 +0100
committerfatpigsarefat <fatpigsarefat@outlook.com>2018-09-23 16:19:39 +0100
commitbcbb43392cd45e03a68bc581396fc5bbac691080 (patch)
treebc50f659a8aafc0164e2746109a160d53b0201fe /src/main/java/me/fatpigsarefat/quests
parentf772b2eec8e41876a140832d1101a21dcc130e01 (diff)
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)
Diffstat (limited to 'src/main/java/me/fatpigsarefat/quests')
-rw-r--r--src/main/java/me/fatpigsarefat/quests/commands/CommandQuests.java4
-rw-r--r--src/main/java/me/fatpigsarefat/quests/obj/Messages.java2
-rw-r--r--src/main/java/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java29
3 files changed, 22 insertions, 13 deletions
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);