private static async Task DelayedActionsAsync() { while (true) { if (_toRemove.Count > 0) { int offset = 0; while (_toRemove.Count > 0) { var index = _toRemove.Dequeue(); _delayedActions.RemoveAt(index - offset); _actionMessages.RemoveAt(index - offset); _actionLasts.RemoveAt(index - offset); _actionModules.RemoveAt(index - offset); offset++; } } for (int i = 0; i < _delayedActions.Count; i++) { if (_delayedActions[i].MoveNext()) { _actionLasts[i] = _delayedActions[i].Current; continue; } else { _toRemove.Enqueue(i); await ModuleCommandHandler.HandleResponse(_actionMessages[i], _actionLasts[i], _actionModules[i]); } } await Task.Delay(1000); } }
//private static IEnumerable<string> _commands; private async Task MessageCreated(MessageCreateEventArgs msg) { if ((Channel ?? (Channel = msg.Channel)) != msg.Channel) { return; } //Debug.Log(String.Join(" ", _cnext.RegisteredCommands.Select(x => x.Key))); if (msg.Author.Id == _client.CurrentUser.Id || msg.Message.MessageType != MessageType.Default) { return; } if (Regex.IsMatch(msg.Message.Content, _moduleCommandRegex ?? (_moduleCommandRegex = @"^" + _config.Prefix + @"[1-9][0-9]* .*"))) { await ModuleCommandHandler.HandleMessageAsync(msg); } /*else if (msg.Message.Content.StartsWith(_config.Prefix, StringComparison.InvariantCultureIgnoreCase)) { * await msg.Message.Reply(Responses.UnrecognizedCommand.FormatThis(msg.Message.Content.Split(' ')[0])); * }*/ }