示例#1
0
        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()}");
            }
        }