【问题标题】:Discord.NET 1.0 send message event?Discord.NET 1.0 发送消息事件?
【发布时间】:2017-09-20 09:59:45
【问题描述】:

我正在尝试在 Discord.NET 1.0 中制作一个插件,该插件会审查某些单词,并且正在在线寻找当有人发送短信时会触发的事件,但不能正常一个在任何地方。我知道如何在 0.9.6 中做到这一点,但是在 1.0 中有没有办法?

任何帮助将不胜感激!

【问题讨论】:

    标签: c# events discord.net


    【解决方案1】:

    所以首先你要创建一个你想要审查的单词数组:

            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)

    【讨论】:

      【解决方案2】:

      DiscordSocketClient 有一个 MessageReceived 事件。

      【讨论】:

        猜你喜欢
        • 2018-01-15
        • 2021-01-26
        • 2018-11-25
        • 1970-01-01
        • 2022-01-04
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多