From 6555dcc00c8084d9cdef613ff29a0e6af8ef44a8 Mon Sep 17 00:00:00 2001 From: LMBishop <13875753+LMBishop@users.noreply.github.com> Date: Mon, 1 Feb 2021 13:45:33 +0000 Subject: Add list by ids --- .../quests/api/QuestsPlaceholders.java | 88 +++++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java index f9acb3bb..8e8af093 100644 --- a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java +++ b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java @@ -77,9 +77,17 @@ public class QuestsPlaceholders extends PlaceholderExpansion { switch (key[0]) { case "all": - return String.join(separator, this.plugin.getQuestManager().getQuests().toString()); + List listAll = new ArrayList<>(); + for (Quest q : this.plugin.getQuestManager().getQuests().values()) { + listAll.add(q.getDisplayNameStripped()); + } + return String.join(separator, listAll); case "categories": - return String.join(separator, this.plugin.getQuestManager().getCategories().toString()); + List listCategories = new ArrayList<>(); + for (Category c : this.plugin.getQuestManager().getCategories()) { + listCategories.add(c.getDisplayNameStripped()); + } + return String.join(separator, listCategories); case "completed": List listCompleted = new ArrayList<>(); for (Quest qCompleted : questP.getQuestProgressFile().getAllQuestsFromProgress(QuestProgressFile.QuestsProgressFilter.COMPLETED)) { @@ -100,6 +108,45 @@ public class QuestsPlaceholders extends PlaceholderExpansion { } return String.join(separator, listStarted); } + } else if (key[1].equals("listid") || key[1].equals("lid")) { + String separator = ","; + if (!(key.length == 2)) { + separator = key[2]; + } + + switch (key[0]) { + case "all": + List listAll = new ArrayList<>(); + for (Quest q : this.plugin.getQuestManager().getQuests().values()) { + listAll.add(q.getId()); + } + return String.join(separator, listAll); + case "categories": + List listCategories = new ArrayList<>(); + for (Category c : this.plugin.getQuestManager().getCategories()) { + listCategories.add(c.getId()); + } + return String.join(separator, listCategories); + case "completed": + List listCompleted = new ArrayList<>(); + for (Quest qCompleted : questP.getQuestProgressFile().getAllQuestsFromProgress(QuestProgressFile.QuestsProgressFilter.COMPLETED)) { + listCompleted.add(qCompleted.getId()); + } + return String.join(separator, listCompleted); + case "completedbefore": + case "completedBefore": + List listCompletedBefore = new ArrayList<>(); + for (Quest qCompletedBefore : questP.getQuestProgressFile().getAllQuestsFromProgress(QuestProgressFile.QuestsProgressFilter.COMPLETED_BEFORE)) { + listCompletedBefore.add(qCompletedBefore.getId()); + } + return String.join(separator, listCompletedBefore); + case "started": + List listStarted = new ArrayList<>(); + for (Quest qStarted : questP.getQuestProgressFile().getAllQuestsFromProgress(QuestProgressFile.QuestsProgressFilter.STARTED)) { + listStarted.add(qStarted.getId()); + } + return String.join(separator, listStarted); + } } return "null"; } @@ -234,6 +281,43 @@ public class QuestsPlaceholders extends PlaceholderExpansion { } return String.join(separator, listStarted); } + } else if (key[2].equals("listid") || key[2].equals("lid")) { + String separator = ","; + if (!(key.length == 3)) { + separator = key[3]; + } + + switch (key[1]) { + case "all": + case "a": + List listAll = new ArrayList<>(); + for (Quest qCompleted : getCategoryQuests(questP, category, QuestProgressFile.QuestsProgressFilter.ALL)) { + listAll.add(qCompleted.getId()); + } + return String.join(separator, listAll); + case "completed": + case "c": + List listCompleted = new ArrayList<>(); + for (Quest qCompleted : getCategoryQuests(questP, category, QuestProgressFile.QuestsProgressFilter.COMPLETED)) { + listCompleted.add(qCompleted.getId()); + } + return String.join(separator, listCompleted); + case "completedbefore": + case "completedBefore": + case "cB": + List listCompletedBefore = new ArrayList<>(); + for (Quest qCompletedBefore : getCategoryQuests(questP, category, QuestProgressFile.QuestsProgressFilter.COMPLETED_BEFORE)) { + listCompletedBefore.add(qCompletedBefore.getId()); + } + return String.join(separator, listCompletedBefore); + case "started": + case "s": + List listStarted = new ArrayList<>(); + for (Quest qStarted : getCategoryQuests(questP, category, QuestProgressFile.QuestsProgressFilter.STARTED)) { + listStarted.add(qStarted.getId()); + } + return String.join(separator, listStarted); + } } return "null"; } -- cgit v1.2.3-70-g09d2