use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-companion by dmorcellet.
the class MainTestQuestCompletionStats method main.
/**
* Basic main method for test.
* @param args Not used.
*/
public static void main(String[] args) {
LotroTestUtils utils = new LotroTestUtils();
// CharacterFile mainToon=utils.getMainToon();
CharacterFile mainToon = utils.getToonByName("Feroce");
CharacterSummary summary = mainToon.getSummary();
CharacterLog log = mainToon.getLastCharacterLog();
if (log != null) {
QuestsManager qm = QuestsManager.getInstance();
QuestsIndex index = qm.getIndex();
String[] categories = index.getCategories();
for (String category : categories) {
// String category="Epic - Vol. I, Book 1: Stirrings in the Darkness";
QuestsCompletionStats stats = new QuestsCompletionStats(category, summary, log);
stats.dump(System.out, true);
}
}
}
use of delta.games.lotro.lore.quests.index.QuestsIndex 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.index.QuestsIndex 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.index.QuestsIndex 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.index.QuestsIndex in project lotro-tools by dmorcellet.
the class QuestsIndexJSONParser method parseQuestsIndex.
/**
* Get quests index from web.
* @return A quests index or <code>null</code> if a problem occurs.
*/
public QuestsIndex parseQuestsIndex() {
QuestsIndex ret;
try {
_index = new QuestsIndex();
Downloader d = new Downloader();
while ((_total == 0) || (_currentItemIndex < _total)) {
load(d, _currentItemIndex);
}
ret = _index;
_index = null;
} catch (Exception e) {
ret = null;
}
return ret;
}
Aggregations