private async Task Client_MessageReceived(SocketMessage arg) { SocketUserMessage SUM = arg as SocketUserMessage; if (SUM == null || arg.Author.IsBot) { return; } if (spam != null && spam.User.Id == arg.Author.Id || (DateTime.Now.Subtract(DateTime.Now).TotalSeconds > 60000)) { spam = null; } int pos = 0; if (SUM.HasMentionPrefix(Client.CurrentUser, ref pos) || SUM.HasStringPrefix("#bot", ref pos)) { ITextChannel chan = arg.Channel as ITextChannel; if (chan != null) { IGuildUser user = (await chan.Guild.GetUsersAsync()).FirstOrDefault((x) => { string enterName = SUM.Content.Substring(pos, SUM.Content.Length - pos).ToLower(); if (Talk.CleanName(x.Username.ToLower()) == enterName) { return(true); } return(!string.IsNullOrEmpty(x.Nickname) && Talk.CleanName(x.Nickname.ToLower()) == enterName); }); if (user != null) { spam = new Talk.Spam(user, chan); } } } }
async Task MainAsync() { P = this; Client = new DiscordSocketClient(new DiscordSocketConfig() { LogLevel = LogSeverity.Verbose }); rnd = new Random(); countdown = DateTime.Now; spam = null; spamThread = new Thread(Talk.Talker); spamThread.Start(); Client.MessageReceived += Client_MessageReceived; Client.Log += Client_Log; await Client.LoginAsync(TokenType.Bot, File.ReadAllText("key.txt")); await Client.StartAsync(); await Task.Delay(-1); }