コード例 #1
0
ファイル: CCPCharacter.cs プロジェクト: wow4all/evemu_server
        /// <summary>
        /// Base constructor.
        /// </summary>
        /// <param name="identity"></param>
        /// <param name="guid"></param>
        private CCPCharacter(CharacterIdentity identity, Guid guid)
            : base(identity, guid)
        {
            m_queue = new SkillQueue(this);
            m_marketOrders = new MarketOrderCollection(this);
            m_industryJobs = new IndustryJobCollection(this);
            m_researchPoints = new ResearchPointCollection(this);
            m_eveMailMessages = new EveMailMessagesCollection(this);
            m_eveMailingLists = new EveMailingListsCollection(this);
            m_eveNotifications = new EveNotificationsCollection(this);
            m_monitors = new QueryMonitorCollection();

            // Initializes the query monitors 
            m_charSheetMonitor = new CharacterQueryMonitor<SerializableAPICharacterSheet>(this, APIMethods.CharacterSheet);
            m_charSheetMonitor.Updated += OnCharacterSheetUpdated;
            m_monitors.Add(m_charSheetMonitor);

            m_skillQueueMonitor = new CharacterQueryMonitor<SerializableAPISkillQueue>(this, APIMethods.SkillQueue);
            m_skillQueueMonitor.Updated += OnSkillQueueUpdated;
            m_monitors.Add(m_skillQueueMonitor);

            m_charMarketOrdersMonitor = new CharacterQueryMonitor<SerializableAPIMarketOrders>(this, APIMethods.MarketOrders);
            m_charMarketOrdersMonitor.Updated += OnCharacterMarketOrdersUpdated;
            m_monitors.Add(m_charMarketOrdersMonitor);

            m_corpMarketOrdersMonitor = new CharacterQueryMonitor<SerializableAPIMarketOrders>(this, APIMethods.CorporationMarketOrders);
            m_corpMarketOrdersMonitor.Updated += OnCorporationMarketOrdersUpdated;
            m_monitors.Add(m_corpMarketOrdersMonitor);

            m_charIndustryJobsMonitor = new CharacterQueryMonitor<SerializableAPIIndustryJobs>(this, APIMethods.IndustryJobs);
            m_charIndustryJobsMonitor.Updated += OnCharacterJobsUpdated;
            m_monitors.Add(m_charIndustryJobsMonitor);

            m_corpIndustryJobsMonitor = new CharacterQueryMonitor<SerializableAPIIndustryJobs>(this, APIMethods.CorporationIndustryJobs);
            m_corpIndustryJobsMonitor.Updated += OnCorporationJobsUpdated;
            m_monitors.Add(m_corpIndustryJobsMonitor);

            m_charResearchPointsMonitor = new CharacterQueryMonitor<SerializableAPIResearch>(this, APIMethods.ResearchPoints);
            m_charResearchPointsMonitor.Updated += OnCharacterResearchPointsUpdated;
            m_monitors.Add(m_charResearchPointsMonitor);

            m_charEVEMailMessagesMonitor = new CharacterQueryMonitor<SerializableAPIMailMessages>(this, APIMethods.MailMessages);
            m_charEVEMailMessagesMonitor.Updated += OnCharacterEVEMailMessagesUpdated;
            m_monitors.Add(m_charEVEMailMessagesMonitor);

            m_charEVENotificationsMonitor = new CharacterQueryMonitor<SerializableAPINotifications>(this, APIMethods.Notifications);
            m_charEVENotificationsMonitor.Updated += OnCharacterEVENotificationsUpdated;
            m_monitors.Add(m_charEVENotificationsMonitor);

            // We enable only the monitors that require a limited api key,
            // full api key required monitors will be enabled individually
            // through each character's enabled full api key feature
            foreach (var monitor in m_monitors)
            {
                monitor.Enabled = !monitor.IsFullKeyNeeded;
            }
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CharacterDataQuerying"/> class.
        /// </summary>
        /// <param name="ccpCharacter">The CCP character.</param>
        internal CharacterDataQuerying(CCPCharacter ccpCharacter)
        {
            // Initializes the query monitors
            m_ccpCharacter = ccpCharacter;
            m_characterQueryMonitors = new List<IQueryMonitorEx>();

            m_charSheetMonitor = new CharacterQueryMonitor<SerializableAPICharacterSheet>(ccpCharacter,
                CCPAPICharacterMethods.CharacterSheet, OnCharacterSheetUpdated);
            IQueryMonitorEx skillQueueMonitor = new CharacterQueryMonitor<SerializableAPISkillQueue>(ccpCharacter,
                CCPAPICharacterMethods.SkillQueue, OnSkillQueueUpdated);
            IQueryMonitorEx charStandingsMonitor = new CharacterQueryMonitor<SerializableAPIStandings>(ccpCharacter,
                CCPAPICharacterMethods.Standings, OnStandingsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charContactsMonitor = new CharacterQueryMonitor<SerializableAPIContactList>(ccpCharacter,
                CCPAPICharacterMethods.ContactList, OnContactsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charFacWarStatsMonitor = new CharacterQueryMonitor<SerializableAPIFactionalWarfareStats>(ccpCharacter,
                CCPAPICharacterMethods.FactionalWarfareStats, OnFactionalWarfareStatsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charMedalsMonitor = new CharacterQueryMonitor<SerializableAPIMedals>(ccpCharacter,
                CCPAPICharacterMethods.Medals, OnMedalsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charKillLogMonitor = new CharacterQueryMonitor<SerializableAPIKillLog>(ccpCharacter,
                CCPAPICharacterMethods.KillLog, OnKillLogUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charAssetsMonitor = new CharacterQueryMonitor<SerializableAPIAssetList>(ccpCharacter,
                CCPAPICharacterMethods.AssetList, OnAssetsUpdated)
            { QueryOnStartup = true };
            m_charMarketOrdersMonitor = new CharacterQueryMonitor<SerializableAPIMarketOrders>(ccpCharacter,
                CCPAPICharacterMethods.MarketOrders, OnMarketOrdersUpdated)
            { QueryOnStartup = true };
            m_charContractsMonitor = new CharacterQueryMonitor<SerializableAPIContracts>(ccpCharacter,
                CCPAPICharacterMethods.Contracts, OnContractsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charWalletJournalMonitor = new CharacterQueryMonitor<SerializableAPIWalletJournal>(ccpCharacter,
                CCPAPICharacterMethods.WalletJournal, OnWalletJournalUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charWalletTransactionsMonitor = new CharacterQueryMonitor<SerializableAPIWalletTransactions>(ccpCharacter,
                CCPAPICharacterMethods.WalletTransactions, OnWalletTransactionsUpdated)
            { QueryOnStartup = true };
            m_charIndustryJobsMonitor = new CharacterQueryMonitor<SerializableAPIIndustryJobs>(ccpCharacter,
                CCPAPICharacterMethods.IndustryJobs, OnIndustryJobsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charResearchPointsMonitor = new CharacterQueryMonitor<SerializableAPIResearch>(ccpCharacter,
                CCPAPICharacterMethods.ResearchPoints, OnResearchPointsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charEVEMailMessagesMonitor = new CharacterQueryMonitor<SerializableAPIMailMessages>(ccpCharacter,
                CCPAPICharacterMethods.MailMessages, OnEVEMailMessagesUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charEVENotificationsMonitor = new CharacterQueryMonitor<SerializableAPINotifications>(ccpCharacter,
                CCPAPICharacterMethods.Notifications, OnEVENotificationsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charUpcomingCalendarEventsMonitor = new CharacterQueryMonitor<SerializableAPIUpcomingCalendarEvents>(ccpCharacter,
                CCPAPICharacterMethods.UpcomingCalendarEvents, OnUpcomingCalendarEventsUpdated)
            { QueryOnStartup = true };
            IQueryMonitorEx charPlanetaryColoniesMonitor = new CharacterQueryMonitor<SerializableAPIPlanetaryColonies>(ccpCharacter,
                CCPAPIGenericMethods.PlanetaryColonies, OnPlanetaryColoniesUpdated)
            { QueryOnStartup = true };

            // Add the monitors in an order as they will appear in the throbber menu
            m_characterQueryMonitors.AddRange(new[]
            {
                m_charSheetMonitor,
                skillQueueMonitor,
                charStandingsMonitor,
                charContactsMonitor,
                charFacWarStatsMonitor,
                charMedalsMonitor,
                charKillLogMonitor,
                charAssetsMonitor,
                m_charMarketOrdersMonitor,
                m_charContractsMonitor,
                charWalletJournalMonitor,
                charWalletTransactionsMonitor,
                m_charIndustryJobsMonitor,
                charPlanetaryColoniesMonitor,
                charResearchPointsMonitor,
                charEVEMailMessagesMonitor,
                charEVENotificationsMonitor,
                charUpcomingCalendarEventsMonitor
            });

            m_characterQueryMonitors.ForEach(monitor => ccpCharacter.QueryMonitors.Add(monitor));

            m_basicFeaturesMonitors = m_characterQueryMonitors
                .Select(monitor =>
                    new
                    {
                        monitor,
                        method = (CCPAPICharacterMethods)monitor.Method
                    })
                .Where(monitor =>
                    (long)monitor.method == ((long)monitor.method & (long)CCPAPIMethodsEnum.BasicCharacterFeatures))
                .Select(basicFeature => basicFeature.monitor)
                .ToList();

            if (ccpCharacter.ForceUpdateBasicFeatures)
                m_basicFeaturesMonitors.ForEach(monitor => monitor.ForceUpdate(true));

            EveMonClient.TimerTick += EveMonClient_TimerTick;
        }