aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@outlook.com>2018-07-21 21:25:00 +0100
committerfatpigsarefat <fatpigsarefat@outlook.com>2018-07-21 21:25:01 +0100
commitbcd4d141c04768c2ed3d00d4963e4f40424b5bc4 (patch)
treeb79a965aaa19bee8f859f1de5272feae2fbb0153 /src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java
parent56aae6d737aa523f23160256b5022b8cce8fe9c5 (diff)
Now using Maven
- pom.xml was added - Source files moved - .gitignore adjusted to allow .xml - All Title classes changed to use Bukkit method instead
Diffstat (limited to 'src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java')
-rw-r--r--src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java b/src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java
new file mode 100644
index 00000000..ef5e54b4
--- /dev/null
+++ b/src/main/java/me/fatpigsarefat/quests/player/QPlayerManager.java
@@ -0,0 +1,78 @@
+package me.fatpigsarefat.quests.player;
+
+import me.fatpigsarefat.quests.Quests;
+import me.fatpigsarefat.quests.player.questprogressfile.QuestProgress;
+import me.fatpigsarefat.quests.player.questprogressfile.QuestProgressFile;
+import me.fatpigsarefat.quests.player.questprogressfile.TaskProgress;
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import java.io.File;
+import java.util.*;
+
+public class QPlayerManager {
+
+ private Map<UUID, QPlayer> qPlayers = new HashMap<>();
+
+ public void addPlayer(QPlayer qPlayer) {
+ qPlayers.put(qPlayer.getUuid(), qPlayer);
+ }
+
+ public QPlayer getPlayer(UUID uuid) {
+ return qPlayers.get(uuid);
+ }
+
+ public void removePlayer(UUID uuid) {
+ qPlayers.remove(uuid);
+ }
+
+ public Collection<QPlayer> getQPlayers() {
+ return qPlayers.values();
+ }
+
+ public void loadPlayer(UUID uuid) {
+ loadPlayer(uuid, false);
+ }
+
+ public void loadPlayer(UUID uuid, boolean onlyData) {
+ if (getPlayer(uuid) == null || getPlayer(uuid).isOnlyDataLoaded()) {
+ QuestProgressFile questProgressFile = new QuestProgressFile(uuid);
+
+ try {
+ File directory = new File(Quests.getInstance().getDataFolder() + File.separator + "playerdata");
+ if (directory.exists() && directory.isDirectory()) {
+ File file = new File(Quests.getInstance().getDataFolder() + File.separator + "playerdata" + File.separator + uuid.toString() + ".yml");
+ if (file.exists()) {
+ YamlConfiguration data = YamlConfiguration.loadConfiguration(file);
+ if (data.contains("quest-progress")) {
+ for (String id : data.getConfigurationSection("quest-progress").getKeys(false)) {
+ boolean started = data.getBoolean("quest-progress." + id + ".started");
+ boolean completed = data.getBoolean("quest-progress." + id + ".completed");
+ boolean completedBefore = data.getBoolean("quest-progress." + id + ".completed-before");
+ long completionDate = data.getLong("quest-progress." + id + ".completion-date");
+
+ QuestProgress questProgress = new QuestProgress(id, completed, completedBefore, completionDate, uuid, started, true);
+
+ for (String taskid : data.getConfigurationSection("quest-progress." + id + ".task-progress").getKeys(false)) {
+ boolean taskCompleted = data.getBoolean("quest-progress." + id + ".task-progress." + taskid + ".completed");
+ Object taskProgression = data.get("quest-progress." + id + ".task-progress." + taskid + ".progress");
+
+ TaskProgress taskProgress = new TaskProgress(taskid, taskProgression, uuid, taskCompleted);
+ questProgress.addTaskProgress(taskProgress);
+ }
+
+ questProgressFile.addQuestProgress(questProgress);
+ }
+ }
+ }
+ }
+ } catch (Exception ignored) {
+ // fuck
+ }
+
+ QPlayer qPlayer = new QPlayer(uuid, questProgressFile, onlyData);
+
+ addPlayer(qPlayer);
+ }
+ }
+
+}