예제 #1
0
        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);
                    }
                }
            }
        }
예제 #2
0
        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);
        }