use of delta.games.lotro.lore.quests.QuestDescription in project lotro-companion by dmorcellet.
the class QuestsCompletionStats method loadQuestIdentifiers.
private void loadQuestIdentifiers() {
QuestsManager qm = QuestsManager.getInstance();
QuestsIndex index = qm.getIndex();
if (index != null) {
QuestCategory category = index.getCategory(_category);
if (category != null) {
QuestSummary[] summaries = category.getQuests();
for (QuestSummary summary : summaries) {
int id = summary.getIdentifier();
QuestDescription q = qm.getQuest(id);
if (q != null) {
boolean useIt = true;
if (USE_CLASS_RESTRICTIONS) {
List<String> classes = q.getRequiredClasses();
if ((classes != null) && (classes.size() > 0)) {
CharacterClass cClass = _character.getCharacterClass();
String className = cClass.getKey();
if (classes.contains(className)) {
useIt = true;
} else {
String key = q.getKey();
if (_logger.isInfoEnabled()) {
_logger.info("Ignored quest [" + key + "]. Class=" + className + ", Required:" + classes);
}
useIt = false;
}
}
}
if (USE_RACE_RESTRICTIONS) {
List<String> races = q.getRequiredRaces();
if ((races != null) && (races.size() > 0)) {
Race cRace = _character.getRace();
String raceName = cRace.getLabel();
if (races.contains(raceName)) {
useIt = true;
} else {
String key = q.getKey();
if (_logger.isInfoEnabled()) {
_logger.info("Ignored quest [" + key + "]. Race=" + raceName + ", Required:" + races);
}
useIt = false;
}
}
}
if (!USE_INSTANCES) {
boolean instanced = q.isInstanced();
if (instanced) {
useIt = false;
}
}
if (useIt) {
_expectedIds.add(Integer.valueOf(id));
}
}
}
_nbExpectedQuests = _expectedIds.size();
}
}
}
use of delta.games.lotro.lore.quests.QuestDescription in project lotro-companion by dmorcellet.
the class VirtuesStats method parseQuestItems.
private void parseQuestItems(List<CharacterLogItem> items) {
QuestsManager qm = QuestsManager.getInstance();
for (CharacterLogItem item : items) {
Integer id = item.getResourceIdentifier();
if (id != null) {
QuestDescription quest = qm.getQuest(id.intValue());
if (quest != null) {
Rewards rewards = quest.getQuestRewards();
handleRewards("Quest:" + id, rewards);
}
}
}
}
use of delta.games.lotro.lore.quests.QuestDescription in project lotro-tools by dmorcellet.
the class QuestsIndexBuilder method doIt.
/**
* Do build quests index.
* @return <code>true</code> if it was done, <code>false</code> otherwise.
*/
public boolean doIt() {
boolean ret = false;
if (_questsDir.exists()) {
QuestsIndex index = new QuestsIndex();
ExtensionPredicate extFilter = new ExtensionPredicate(".xml");
File[] questFiles = _questsDir.listFiles(extFilter);
if (questFiles != null) {
QuestXMLParser parser = new QuestXMLParser();
for (File questFile : questFiles) {
QuestDescription q = parser.parseXML(questFile);
String category = q.getCategory();
String key = q.getKey();
String title = q.getTitle();
int id = q.getIdentifier();
index.addQuest(category, id, key, title);
}
QuestsIndexWriter writer = new QuestsIndexWriter();
ret = writer.write(_indexFile, index, EncodingNames.UTF_8);
}
}
return ret;
}
use of delta.games.lotro.lore.quests.QuestDescription in project lotro-tools by dmorcellet.
the class QuestsItemsLoader method doIt.
private void doIt() {
List<QuestDescription> storage = new ArrayList<QuestDescription>();
QuestsManager qm = QuestsManager.getInstance();
QuestsIndex index = qm.getIndex();
if (index != null) {
String[] categories = index.getCategories();
System.out.println(Arrays.deepToString(categories));
for (String category : categories) {
QuestCategory c = index.getCategory(category);
QuestSummary[] quests = c.getQuests();
int indexQ = 0;
for (QuestSummary questSum : quests) {
int id = questSum.getIdentifier();
QuestDescription q = qm.getQuest(id);
handleQuest(indexQ, q);
storage.add(q);
indexQ++;
}
}
System.out.println("Resolved: " + _resolved + ", missed: " + _missed);
writeQuestsDatabase(storage);
} else {
_logger.error("Cannot gets quests index file!");
}
}
use of delta.games.lotro.lore.quests.QuestDescription in project lotro-tools by dmorcellet.
the class QuestsLoader method loadQuestsDefinition.
/**
* Load quest definitions.
* @param key Quest key.
* @return Number of loaded quests.
*/
private int loadQuestsDefinition(String key) {
int nbQuests = 0;
QuestPageParser parser = new QuestPageParser();
String url = urlFromIdentifier(key);
List<QuestDescription> quests = parser.parseQuestPage(url);
if ((quests != null) && (quests.size() > 0)) {
QuestXMLWriter writer = new QuestXMLWriter();
for (QuestDescription quest : quests) {
int id = quest.getIdentifier();
String fileName = String.valueOf(id) + ".xml";
File questFile = new File(_questsDir, fileName);
if (!questFile.getParentFile().exists()) {
questFile.getParentFile().mkdirs();
}
boolean ok = writer.write(questFile, quest, EncodingNames.UTF_8);
if (ok) {
nbQuests++;
} else {
String title = quest.getTitle();
_logger.error("Write failed for quest [" + title + "]!");
}
}
} else {
_logger.error("Cannot parse quests [" + key + "] at URL [" + url + "]!");
}
return nbQuests;
}
Aggregations