public void Run(MessageCreateEventArgs e) { var lower = e.Message.Content.ToLower(); TimeSpan?timeout = null; var regmatch = regex_timeout.Match(lower); if (regmatch.Success) { var val = int.Parse(regmatch.Value.Substring(0, regmatch.Value.Length - 1)); if (regmatch.Value.EndsWith("h")) { timeout = new TimeSpan(val, 0, 0); } else if (regmatch.Value.EndsWith("m")) { timeout = new TimeSpan(0, val, 0); } else if (regmatch.Value.EndsWith("s")) { timeout = new TimeSpan(0, 0, val); } } if (lower.Contains("off")) { SetAlarmState(EnumAlarmState.Off, timeout); } else if (lower.Contains("on")) { SetAlarmState(EnumAlarmState.On); } else if (lower.Contains("silent")) { SetAlarmState(EnumAlarmState.Silent, timeout); } else if (lower.Contains("list")) { e.Channel.SendMessageAsync(AlarmManager.ToString()); } else { e.Channel.SendMessageAsync(clsCommands.Instance.GetHelpString(this)); } if (AlarmStateTimeout.HasValue) { e.Channel.SendMessageAsync($"Alarm State: {AlarmState.ToString()} Resets in: {(AlarmStateTimeout.Value - DateTime.UtcNow).ToHMSDisplay()}"); } else { e.Channel.SendMessageAsync($"Alarm State: {AlarmState.ToString()}"); } }