diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-01 13:45:33 +0000 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-01 13:45:33 +0000 |
| commit | 6555dcc00c8084d9cdef613ff29a0e6af8ef44a8 (patch) | |
| tree | 688ebc9244fc1c800197f3943139bc48f89bed36 /src | |
| parent | b059c17f5e58a7dbf2c7d3696fe3fe4a47e6b2f1 (diff) | |
Add list by ids
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java | 88 |
1 files changed, 86 insertions, 2 deletions
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<String> 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<String> listCategories = new ArrayList<>(); + for (Category c : this.plugin.getQuestManager().getCategories()) { + listCategories.add(c.getDisplayNameStripped()); + } + return String.join(separator, listCategories); case "completed": List<String> 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<String> listAll = new ArrayList<>(); + for (Quest q : this.plugin.getQuestManager().getQuests().values()) { + listAll.add(q.getId()); + } + return String.join(separator, listAll); + case "categories": + List<String> listCategories = new ArrayList<>(); + for (Category c : this.plugin.getQuestManager().getCategories()) { + listCategories.add(c.getId()); + } + return String.join(separator, listCategories); + case "completed": + List<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> listStarted = new ArrayList<>(); + for (Quest qStarted : getCategoryQuests(questP, category, QuestProgressFile.QuestsProgressFilter.STARTED)) { + listStarted.add(qStarted.getId()); + } + return String.join(separator, listStarted); + } } return "null"; } |
