Событие отправки сообщения Discord.NET 1.0?

Я пытаюсь создать плагин в Discord.NET 1.0, который подвергает цензуре определенные слова, и искал в Интернете событие, которое срабатывало бы, когда кто-то отправлял текстовое сообщение, но нигде не мог его оштрафовать. Я знаю, как это сделать в 0.9.6, но есть ли способ в 1.0?

Любая помощь приветствуется!


person Daniel Lewis    schedule 23.04.2017    source источник


Ответы (2)


DiscordSocketClient имеет событие MessageReceived.

person Bond_009    schedule 01.05.2017

Итак, сначала вы должны создать массив слов, которые хотите подвергнуть цензуре:

        String[] badWords = {"word1","word2", "word3"};

Затем вы захотите проверить, содержит ли сообщение, отправленное пользователем, эти сообщения, а затем сохранить их в словаре.

            for (int i = 0; i < badWords.Length; i++)
        {


            if (msg.Content.Contains(badWords[i]))
            {
                Console.WriteLine("true");
                if (wordOffences.ContainsKey(msg.Author.ToString()))
                {
                    wordOffences[msg.Author.ToString()] += 1;
                    Console.WriteLine("if");
                    Console.WriteLine(wordOffences[msg.Author.ToString()]);
                    File.WriteAllText(@"c:\Users\me\Desktop\real.json", JsonConvert.SerializeObject(wordOffences));
                    if (wordOffences[msg.Author.ToString()] >= 3)
                    {
                        Console.WriteLine("really true");
                        await m.Channel.SendMessageAsync("@Staff have been notified. Hey buddy watch your language! This is offence: " + wordOffences[msg.Author.ToString()]);

                    }
                    else
                    {
                        Console.WriteLine("y");
                        await m.Channel.SendMessageAsync("Hey buddy watch your language! This is offence: " + wordOffences[msg.Author.ToString()]);

                    }
                }
                else
                {
                    Console.WriteLine("runmf");
                    wordOffences.Add(msg.Author.ToString(), 1);
                    Console.WriteLine(wordOffences[msg.Author.ToString()]);
                    await m.Channel.SendMessageAsync("Hey buddy watch your language! This is offence: " + wordOffences[msg.Author.ToString()]);
                    File.WriteAllText(@"c:\Users\me\Desktop\real.json", JsonConvert.SerializeObject(wordOffences));

                }

                i = badWords.Length;


            }

Используя это, вы можете сохранить количество нарушений, которые пользователь имеет в файле json, чтобы он был постоянным. Вы должны указать это в своем: public async Task HandleCommandAsync(SocketMessage m)

person Community    schedule 19.08.2017