Updates to account for some changes in quests
This commit is contained in:
@ -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 <p>The quest to generate information about</p>
|
||||
* @param questsAPI <p>The API to use for getting quest information</p>
|
||||
* @param quest <p>The quest to generate information about</p>
|
||||
*/
|
||||
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 <p>The quests to get names for</p>
|
||||
* @param questIds <p>The quests to get names for</p>
|
||||
* @return <p>A list of quest names</p>
|
||||
*/
|
||||
private List<String> getQuestNames(List<IQuest> quests) {
|
||||
List<String> questNames = new ArrayList<>(quests.size());
|
||||
for (IQuest quest : quests) {
|
||||
questNames.add(quest.getName());
|
||||
private List<String> getQuestNames(List<String> questIds) {
|
||||
List<String> 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 <p>The id of the quest to get</p>
|
||||
* @return <p>The quest, or null if not found</p>
|
||||
*/
|
||||
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
|
||||
*
|
||||
|
@ -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());
|
||||
|
Reference in New Issue
Block a user