private void Alarm(AlarmTime[] alarms) { Logger.Info("ALARM!"); if (alarms.Any(a => a.PlaySound)) { PlaySound(); } foreach (var alarm in alarms) { Logger.Info("Run event handlers: {0} ({1})", alarm.Name, alarm.Id); Guid alarmId = alarm.Id; Run(AlarmStartedForPlugins, x => x(alarmId)); if (alarm.UserScript != null) { Logger.Info("Run script: {0} ({1})", alarm.UserScript.Name, alarm.UserScript.Id); Context.GetPlugin<ScriptsPlugin>().ExecuteScript(alarm.UserScript); } } Logger.Info("Run subscribed scripts"); this.RaiseScriptEvent(x => x.AlarmStartedForScripts); }