Exemplo n.º 1
0
        public ActiveTriggers(
            string characterName,
            [NotNull] ISoundManager soundManager,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] IWurmApi wurmApi,
            [NotNull] ILogger logger,
            [NotNull] IActionQueueConditions actionQueueConditions,
            [NotNull] TriggersDataContext triggersDataContext,
            [NotNull] ITelemetry telemetry)
        {
            if (soundManager == null)
            {
                throw new ArgumentNullException(nameof(soundManager));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (actionQueueConditions == null)
            {
                throw new ArgumentNullException(nameof(actionQueueConditions));
            }
            if (triggersDataContext == null)
            {
                throw new ArgumentNullException(nameof(triggersDataContext));
            }

            CharacterName = characterName;

            this.soundManager          = soundManager;
            this.trayPopups            = trayPopups;
            this.wurmApi               = wurmApi;
            this.logger                = logger;
            this.actionQueueConditions = actionQueueConditions;
            this.telemetry             = telemetry ?? throw new ArgumentNullException(nameof(telemetry));
            this.triggersConfig        = triggersDataContext.CharacterTriggersConfigs.GetOrCreate(characterName);

            foreach (var entity in triggersConfig.TriggerEntities.Values)
            {
                try
                {
                    triggers.Add(entity.TriggerId, BuildTrigger(entity));
                }
                catch (Exception exception)
                {
                    logger.Error(exception,
                                 string.Format("Error initializing trigger id {0}, name: {1}", entity.TriggerId, entity.Name));
                }
            }
        }
Exemplo n.º 2
0
        public ConditionsManager([NotNull] TriggersDataContext triggersDataContext)
        {
            if (triggersDataContext == null)
            {
                throw new ArgumentNullException(nameof(triggersDataContext));
            }
            this.triggersDataContext = triggersDataContext;

            MergeAllDefaultConditions();
            RebuildConditionsCache();
        }
Exemplo n.º 3
0
 public TriggersV2Migration(
     [NotNull] ObsoleteDataProvider obsoleteDataProvider,
     [NotNull] TriggersDataContext triggersDataContext)
 {
     if (obsoleteDataProvider == null)
     {
         throw new ArgumentNullException(nameof(obsoleteDataProvider));
     }
     if (triggersDataContext == null)
     {
         throw new ArgumentNullException(nameof(triggersDataContext));
     }
     this.obsoleteDataProvider = obsoleteDataProvider;
     this.triggersDataContext  = triggersDataContext;
 }
Exemplo n.º 4
0
        public TriggersFeature(
            [NotNull] ISoundManager soundManager,
            [NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory,
            [NotNull] ITimerFactory timerFactory,
            [NotNull] IWurmApi wurmApi,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] ILogger logger,
            [NotNull] TriggersDataContext triggersDataContext,
            [NotNull] ITriggerManagerFactory triggerManagerFactory)
        {
            if (soundManager == null)
            {
                throw new ArgumentNullException(nameof(soundManager));
            }
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            if (timerFactory == null)
            {
                throw new ArgumentNullException(nameof(timerFactory));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (triggersDataContext == null)
            {
                throw new ArgumentNullException(nameof(triggersDataContext));
            }
            if (triggerManagerFactory == null)
            {
                throw new ArgumentNullException(nameof(triggerManagerFactory));
            }
            this.soundManager = soundManager;
            this.wurmAssistantDataDirectory = wurmAssistantDataDirectory;
            this.wurmApi               = wurmApi;
            this.trayPopups            = trayPopups;
            this.logger                = logger;
            this.triggersDataContext   = triggersDataContext;
            this.triggerManagerFactory = triggerManagerFactory;

            updateTimer          = timerFactory.CreateUiThreadTimer();
            updateTimer.Interval = TimeSpan.FromMilliseconds(500);
            updateTimer.Tick    += (sender, args) => Update();

            mainUi = new FormTriggersMain(this, soundManager);
            foreach (var name in GetAllActiveCharacters())
            {
                AddManager(name);
            }
            updateTimer.Start();
        }
Exemplo n.º 5
0
        public TriggerManager(
            [NotNull] string characterName,
            [NotNull] IWurmApi wurmApi,
            [NotNull] ISoundManager soundManager,
            [NotNull] ILogger logger,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] IActiveTriggersFactory activeTriggersFactory,
            [NotNull] IWindowManager windowManager,
            [NotNull] TriggersDataContext triggersDataContext,
            [NotNull] IExporterFactory exporterFactory,
            [NotNull] IImporterFactory importerFactory)
        {
            if (characterName == null)
            {
                throw new ArgumentNullException(nameof(characterName));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (soundManager == null)
            {
                throw new ArgumentNullException(nameof(soundManager));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (activeTriggersFactory == null)
            {
                throw new ArgumentNullException(nameof(activeTriggersFactory));
            }
            if (windowManager == null)
            {
                throw new ArgumentNullException(nameof(windowManager));
            }
            if (triggersDataContext == null)
            {
                throw new ArgumentNullException(nameof(triggersDataContext));
            }
            if (exporterFactory == null)
            {
                throw new ArgumentNullException(nameof(exporterFactory));
            }
            if (importerFactory == null)
            {
                throw new ArgumentNullException(nameof(importerFactory));
            }

            this.CharacterName         = characterName;
            this.wurmApi               = wurmApi;
            this.soundManager          = soundManager;
            this.logger                = logger;
            this.trayPopups            = trayPopups;
            this.activeTriggersFactory = activeTriggersFactory;
            this.windowManager         = windowManager;
            this.exporterFactory       = exporterFactory;
            this.importerFactory       = importerFactory;
            this.triggersConfig        = triggersDataContext.CharacterTriggersConfigs.GetOrCreate(characterName);

            activeTriggers = activeTriggersFactory.CreateActiveTriggers(CharacterName);
            activeTriggers.MutedEvaluator = GetMutedEvaluator();

            //create control for Module UI
            controlUi = new UcPlayerTriggersController();

            //create this notifier UI
            triggersConfigUi = new FormTriggersConfig(this, soundManager, windowManager, exporterFactory, importerFactory);

            UpdateMutedState();
            controlUi.label1.Text            = CharacterName;
            controlUi.buttonMute.Click      += ToggleMute;
            controlUi.buttonConfigure.Click += Configure;
            controlUi.buttonRemove.Click    += StopAndRemove;

            try
            {
                wurmApi.LogsMonitor.Subscribe(this.CharacterName, LogType.AllLogs, OnNewLogEvents);
            }
            catch (DataNotFoundException exception)
            {
                logger.Warn(exception, $"Unable to subscribe LogsMonitor events for character {this.CharacterName}.");
            }
        }