【发布时间】:2017-09-20 09:59:45
【问题描述】:
我正在尝试在 Discord.NET 1.0 中制作一个插件,该插件会审查某些单词,并且正在在线寻找当有人发送短信时会触发的事件,但不能正常一个在任何地方。我知道如何在 0.9.6 中做到这一点,但是在 1.0 中有没有办法?
任何帮助将不胜感激!
【问题讨论】:
标签: c# events discord.net
我正在尝试在 Discord.NET 1.0 中制作一个插件,该插件会审查某些单词,并且正在在线寻找当有人发送短信时会触发的事件,但不能正常一个在任何地方。我知道如何在 0.9.6 中做到这一点,但是在 1.0 中有没有办法?
任何帮助将不胜感激!
【问题讨论】:
标签: c# events discord.net
所以首先你要创建一个你想要审查的单词数组:
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)
【讨论】:
DiscordSocketClient 有一个 MessageReceived 事件。
【讨论】: