aboutsummaryrefslogtreecommitdiffstats
path: root/src/me/fatpigsarefat/quests/player
diff options
context:
space:
mode:
Diffstat (limited to 'src/me/fatpigsarefat/quests/player')
-rw-r--r--src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java19
-rw-r--r--src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java30
2 files changed, 16 insertions, 33 deletions
diff --git a/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java b/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java
index c4fe87b2..c6ec335d 100644
--- a/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java
+++ b/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java
@@ -1,12 +1,10 @@
package me.fatpigsarefat.quests.player.questprogressfile;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
public class QuestProgress {
- private List<TaskProgress> taskProgress = new ArrayList<>();
+ private Map<String, TaskProgress> taskProgress = new HashMap<>();
private String questid;
private boolean started;
private boolean completed;
@@ -74,20 +72,15 @@ public class QuestProgress {
}
public void addTaskProgress(TaskProgress taskProgress) {
- this.taskProgress.add(taskProgress);
+ this.taskProgress.put(taskProgress.getTaskId(), taskProgress);
}
- public List<TaskProgress> getTaskProgress() {
- return taskProgress;
+ public Collection<TaskProgress> getTaskProgress() {
+ return taskProgress.values();
}
public TaskProgress getTaskProgress(String taskId) {
- for (TaskProgress taskProgress : this.taskProgress) {
- if (taskProgress.getTaskId().equals(taskId)) {
- return taskProgress;
- }
- }
- return null;
+ return taskProgress.getOrDefault(taskId, null);
}
public boolean isWorthSaving() {
diff --git a/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java b/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java
index bfc80ad3..d809201c 100644
--- a/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java
+++ b/src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java
@@ -12,14 +12,12 @@ import org.bukkit.entity.Player;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.TimeUnit;
public class QuestProgressFile {
- private List<QuestProgress> questProgress = new ArrayList<>();
+ private Map<String, QuestProgress> questProgress = new HashMap<>();
private UUID player;
public QuestProgressFile(UUID player) {
@@ -102,12 +100,12 @@ public class QuestProgressFile {
}
public void addQuestProgress(QuestProgress questProgress) {
- this.questProgress.add(questProgress);
+ this.questProgress.put(questProgress.getQuestId(), questProgress);
}
public List<Quest> getStartedQuests() {
List<Quest> startedQuests = new ArrayList<>();
- for (QuestProgress questProgress : questProgress) {
+ for (QuestProgress questProgress : questProgress.values()) {
if (questProgress.isStarted()) {
startedQuests.add(Quests.getQuestManager().getQuestById(questProgress.getQuestId()));
}
@@ -116,12 +114,7 @@ public class QuestProgressFile {
}
public boolean hasQuestProgress(Quest quest) {
- for (QuestProgress questProgress : this.questProgress) {
- if (questProgress.getQuestId().equals(quest.getId())) {
- return true;
- }
- }
- return false;
+ return questProgress.containsKey(quest.getId());
}
public boolean hasStartedQuest(Quest quest) {
@@ -165,12 +158,9 @@ public class QuestProgressFile {
}
public QuestProgress getQuestProgress(Quest quest) {
- for (QuestProgress questProgress : this.questProgress) {
- if (questProgress.getQuestId().equals(quest.getId())) {
- return questProgress;
- }
- }
- if (generateBlankQuestProgress(quest.getId())) {
+ if (questProgress.containsKey(quest.getId())) {
+ return questProgress.get(quest.getId());
+ } else if (generateBlankQuestProgress(quest.getId())) {
return getQuestProgress(quest);
}
return null;
@@ -185,7 +175,7 @@ public class QuestProgressFile {
questProgress.addTaskProgress(taskProgress);
}
- this.questProgress.add(questProgress);
+ addQuestProgress(questProgress);
return true;
}
return false;
@@ -207,7 +197,7 @@ public class QuestProgressFile {
YamlConfiguration data = YamlConfiguration.loadConfiguration(file);
data.set("quest-progress", null);
- for (QuestProgress questProgress : this.questProgress) {
+ for (QuestProgress questProgress : questProgress.values()) {
if (!questProgress.isWorthSaving()) {
continue;
}