private static bool IsQuestObjectiveActive(int questId, int questStepId, QuestStepObjectiveType objectiveType) { var currentQuest = QuestInfo.FromId(questId); if (currentQuest == null) { Logger.Debug("[Bounty] Failed to determine the step id. Reason: Quest not found."); return(false); } var step = currentQuest.QuestRecord.Steps.FirstOrDefault(); if (step == null) { Logger.Debug("[Bounty] Failed to determine the step id. Reason: Step not found."); return(false); } var objectives = currentQuest.QuestRecord.Steps.First(qs => qs.StepId == questStepId).QuestStepObjectiveSet.QuestStepObjectives; int objectiveIndex; for (objectiveIndex = 0; objectiveIndex < objectives.Length; objectiveIndex++) { if (objectives[objectiveIndex].ObjectiveType == objectiveType) { break; } } return(QuestObjectiveInfo.IsActiveObjective(questId, questStepId, objectiveIndex)); }
public static List <TrinityObjectiveInfo> GetObjectiveInfo() { // Why you make things so difficult for me nesox? var objectives = new List <TrinityObjectiveInfo>(); var logger = (log4net.Repository.Hierarchy.Logger)log4net.LogManager.GetLogger(typeof(QuestObjectiveInfo))?.Logger; if (logger == null) { return(objectives); } var dbLogger = (log4net.Repository.Hierarchy.Logger)log4net.LogManager.GetLogger(typeof(Demonbuddy.MainWindow))?.Logger; if (dbLogger == null) { return(objectives); } var asyncAppender = dbLogger.Parent.Appenders.ToArray().OfType <Zeta.Common.Logger.AsyncAppender>().FirstOrDefault(); var repository = (Hierarchy)LogManager.GetRepository(); repository.Root.RemoveAppender(asyncAppender); var appender = new MemoryAppender(); logger.AddAppender(appender); QuestObjectiveInfo.DumpObjectives(); objectives.AddRange(appender.GetEvents().Select(e => new TrinityObjectiveInfo(e.RenderedMessage))); logger.RemoveAppender(appender); repository.Root.AddAppender(asyncAppender); return(objectives); }