summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@outlook.com>2018-04-22 17:04:25 +0100
committerfatpigsarefat <fatpigsarefat@outlook.com>2018-04-22 17:04:25 +0100
commitb8fd9ba3ee94c36fd5c4cb5e663fb535871aa2f0 (patch)
tree1835c547992ecbadbbb93f414b30d253533c69ec /src
parent43ea3f3571c7c7f4bf2d178aebe80f5de6831803 (diff)
Changed from using lists to map
Diffstat (limited to 'src')
-rw-r--r--src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgress.java19
-rw-r--r--src/me/fatpigsarefat/quests/player/questprogressfile/QuestProgressFile.java30
-rw-r--r--src/me/fatpigsarefat/quests/quests/Quest.java14
3 files changed, 23 insertions, 40 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;
}
diff --git a/src/me/fatpigsarefat/quests/quests/Quest.java b/src/me/fatpigsarefat/quests/quests/Quest.java
index 239cd4fe..0f0a3638 100644
--- a/src/me/fatpigsarefat/quests/quests/Quest.java
+++ b/src/me/fatpigsarefat/quests/quests/Quest.java
@@ -3,12 +3,12 @@ package me.fatpigsarefat.quests.quests;
import me.fatpigsarefat.quests.obj.misc.QItemStack;
import org.bukkit.ChatColor;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
public class Quest {
- private List<Task> tasks = new ArrayList<>();
+ private Map<String, Task> tasks = new HashMap<>();
+ //TODO: maybe store by <tasktypename (string), list<task>> since we never get task by id, but always get tasks by type.
private String id;
private QItemStack displayItem;
private List<String> rewards;
@@ -37,16 +37,16 @@ public class Quest {
}
public void registerTask(Task task) {
- tasks.add(task);
+ tasks.put(task.getId(), task);
}
- public List<Task> getTasks() {
- return tasks;
+ public Collection<Task> getTasks() {
+ return tasks.values();
}
public List<Task> getTasksOfType(String type) {
List<Task> tasks = new ArrayList<>();
- for (Task task : this.tasks) {
+ for (Task task : getTasks()) {
if (task.getType().equals(type)) {
tasks.add(task);
}