From 9312e2156bc12fca68063458d6798d5ee68d8942 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Wed, 12 Apr 2023 02:34:09 +0200 Subject: [PATCH] Updates to account for some changes in quests --- pom.xml | 20 ++++----- .../dynmapcitizens/DynmapCitizens.java | 2 +- .../QuestRequirementsInfoGenerator.java | 44 ++++++++++++++----- .../handler/trait/quests/QuestsHandler.java | 2 +- 4 files changed, 45 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index c7e7e64..efbf2ea 100644 --- a/pom.xml +++ b/pom.xml @@ -93,8 +93,8 @@ https://repo.citizensnpcs.co/ - vault-repo - https://nexus.hc.to/content/repositories/pub_releases + jitpack.io + https://jitpack.io @@ -112,7 +112,7 @@ org.spigotmc spigot-api - 1.19.2-R0.1-SNAPSHOT + 1.19.4-R0.1-SNAPSHOT provided @@ -131,13 +131,13 @@ me.blackvein.quests quests-api - 4.6.0 + 4.8.1 provided me.blackvein.quests quests-core - 4.6.0 + 4.8.1 provided @@ -149,7 +149,7 @@ net.knarcraft blacksmith - 1.0.3-SNAPSHOT + 1.0.4-SNAPSHOT provided @@ -159,15 +159,15 @@ provided - net.milkbowl.vault - Vault - 1.7.3 + com.github.MilkBowl + VaultAPI + 1.7 provided net.knarcraft knarlib - 1.0-SNAPSHOT + 1.1 compile diff --git a/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java b/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java index 010f928..bb043c9 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java @@ -62,7 +62,7 @@ public final class DynmapCitizens extends JavaPlugin { translator.registerMessageCategory(TranslatableTimeUnit.UNIT_SECOND); translator.registerMessageCategory(QuestsTranslatableMessage.QUESTS_REQUIREMENTS_FORMAT); translator.registerMessageCategory(SentinelTranslatableMessage.SENTINEL_DESCRIPTION); - translator.loadLanguages(this.getDataFolder(), "en"); + translator.loadLanguages(this.getDataFolder(), "en", "en"); stringFormatter = new StringFormatter(this.getDescription().getName(), translator); //Initialize all enabled traits diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java index e2a9a6d..03f2dc0 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java @@ -1,5 +1,6 @@ package net.knarcraft.dynmapcitizens.handler.trait.quests; +import me.blackvein.quests.QuestsAPI; import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.quests.Requirements; import net.knarcraft.dynmapcitizens.DynmapCitizens; @@ -31,15 +32,18 @@ import static net.knarcraft.dynmapcitizens.formatting.QuestsTranslatableMessage. */ public class QuestRequirementsInfoGenerator { + private final QuestsAPI questsAPI; private final IQuest quest; private final StringFormatter formatter; /** * Instantiates a new quest requirement info generator * - * @param quest

The quest to generate information about

+ * @param questsAPI

The API to use for getting quest information

+ * @param quest

The quest to generate information about

*/ - public QuestRequirementsInfoGenerator(IQuest quest) { + public QuestRequirementsInfoGenerator(QuestsAPI questsAPI, IQuest quest) { + this.questsAPI = questsAPI; this.quest = quest; formatter = DynmapCitizens.getFormatter(); } @@ -68,14 +72,14 @@ public class QuestRequirementsInfoGenerator { QUESTS_REQUIREMENTS_EXP, "{exp}", String.valueOf(requirements.getExp())) : ""); //Add info about blocking quests - replacer.add("{requirementBlockedByQuests}", !requirements.getBlockQuests().isEmpty() ? - getRequirementList(getQuestNames(requirements.getBlockQuests()), + replacer.add("{requirementBlockedByQuests}", !requirements.getBlockQuestIds().isEmpty() ? + getRequirementList(getQuestNames(requirements.getBlockQuestIds()), QUESTS_REQUIREMENTS_BLOCKED_BY_QUEST_FORMAT, "{blockingQuests}", QUESTS_REQUIREMENTS_BLOCKED_BY_QUEST_ITEM, "{questName}") : ""); //Add info about required quests - replacer.add("{requirementRequiredQuests}", !requirements.getNeededQuests().isEmpty() ? - getRequirementList(getQuestNames(requirements.getNeededQuests()), + replacer.add("{requirementRequiredQuests}", !requirements.getBlockQuestIds().isEmpty() ? + getRequirementList(getQuestNames(requirements.getBlockQuestIds()), QUESTS_REQUIREMENTS_REQUIRED_QUEST_FORMAT, "{requiredQuests}", QUESTS_REQUIREMENTS_REQUIRED_QUEST_ITEM, "{questName}") : ""); @@ -138,17 +142,35 @@ public class QuestRequirementsInfoGenerator { /** * Gets a list of the quest names for the given quests * - * @param quests

The quests to get names for

+ * @param questIds

The quests to get names for

* @return

A list of quest names

*/ - private List getQuestNames(List quests) { - List questNames = new ArrayList<>(quests.size()); - for (IQuest quest : quests) { - questNames.add(quest.getName()); + private List getQuestNames(List questIds) { + List questNames = new ArrayList<>(questIds.size()); + for (String questId : questIds) { + IQuest quest = getQuest(questId); + if (quest != null) { + questNames.add(quest.getName()); + } } return questNames; } + /** + * Gets the quest with the given id + * + * @param questId

The id of the quest to get

+ * @return

The quest, or null if not found

+ */ + private IQuest getQuest(String questId) { + for (IQuest quest : questsAPI.getLoadedQuests()) { + if (quest.getId().equals(questId)) { + return quest; + } + } + return null; + } + /** * Gets a string for the given list of requirements * diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java index 3b928a0..b68cf7c 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java @@ -163,7 +163,7 @@ public class QuestsHandler extends AbstractTraitHandler { stringBuilder.append(new QuestRewardsInfoGenerator(quest).getQuestRewardsInfo()); } if (settings.displayRequirementInfo()) { - stringBuilder.append(new QuestRequirementsInfoGenerator(quest).getQuestRequirementsInfo()); + stringBuilder.append(new QuestRequirementsInfoGenerator(questsAPI, quest).getQuestRequirementsInfo()); } if (settings.displayPlannerInfo()) { stringBuilder.append(new QuestPlannerInfoGenerator(quest).getQuestPlannerInfo());