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)); } } }
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}."); } }