2017-04-23 58 views
1

我试图做一个插件在Discord.NET 1.0哪些审查某些词,并在网上寻找一个事件,当有人发送短信,但无法罚款任何地方时会触发的事件。我知道如何在0.9.6中做到这一点,但在1.0中有没有办法?Discord.NET 1.0发送消息事件?

任何帮助将不胜感激!

回答

1

DiscordSocketClient有一个MessageReceived事件。

0

所以,首先你会做的话,数组要审查:

 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)