diff options
| author | fatpigsarefat <fatpigsarefat@outlook.com> | 2018-04-22 17:04:25 +0100 |
|---|---|---|
| committer | fatpigsarefat <fatpigsarefat@outlook.com> | 2018-04-22 17:04:25 +0100 |
| commit | b8fd9ba3ee94c36fd5c4cb5e663fb535871aa2f0 (patch) | |
| tree | 1835c547992ecbadbbb93f414b30d253533c69ec /src/me/fatpigsarefat | |
| parent | 43ea3f3571c7c7f4bf2d178aebe80f5de6831803 (diff) | |
Changed from using lists to map
Diffstat (limited to 'src/me/fatpigsarefat')
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); } |
