.NET 上的 Discord 机器人,对特定单词做出反应
Discord bot on .NET, reacting on specific words
问题是我想创建一个机器人,它会对人们在不和谐频道聊天中发送的特定单词做出反应。
private Task CowMooeing(SocketMessage msg)
{
string[] mooes = {"moo", "moooooo", "moooooooooo", "mooooooooooo"};
foreach (string moo in mooes)
{
if (msg.Content.Contains(moo))
msg.Channel.SendMessageAsync("hi there, you little COWard!");
}
}
但是。如果有人在聊天中发送“moo, moooo, moooo” - 机器人会对此做出多次反应。
我尝试将 msg.Content.Contains 替换为 msg.Content.Equals()。但在那种情况下,如果有人添加了额外的文本,如:我已经说过“mooo!”,它就不会起作用。 - 机器人不会对此做出反应。所以我真的坚持这一点,我发现解决这个问题的唯一方法是多次复制 mooes 数组 if mooes[0], if mooes[1]
等。但这不是最好的方法。
使用正则表达式时,我遇到了无法使用 IsMatch 或 Match with msg.Content =(
请帮我一点点
使用下面的 Linq Any 方法怎么样?这将只发送一条消息,因为如果找到任何消息,Any 将 return 为真。
private Task CowMooeing(SocketMessage msg)
{
string[] mooes = {"moo", "moooooo", "moooooooooo", "mooooooooooo"};
if(mooes.Any(x => msg.Content.Contains(x))) {
msg.Channel.SendMessageAsync("hi there, you little COWard!");
}
}
我还要说看看 regex 正则表达式,它们对像这样的东西很有帮助
问题是我想创建一个机器人,它会对人们在不和谐频道聊天中发送的特定单词做出反应。
private Task CowMooeing(SocketMessage msg)
{
string[] mooes = {"moo", "moooooo", "moooooooooo", "mooooooooooo"};
foreach (string moo in mooes)
{
if (msg.Content.Contains(moo))
msg.Channel.SendMessageAsync("hi there, you little COWard!");
}
}
但是。如果有人在聊天中发送“moo, moooo, moooo” - 机器人会对此做出多次反应。
我尝试将 msg.Content.Contains 替换为 msg.Content.Equals()。但在那种情况下,如果有人添加了额外的文本,如:我已经说过“mooo!”,它就不会起作用。 - 机器人不会对此做出反应。所以我真的坚持这一点,我发现解决这个问题的唯一方法是多次复制 mooes 数组 if mooes[0], if mooes[1]
等。但这不是最好的方法。
使用正则表达式时,我遇到了无法使用 IsMatch 或 Match with msg.Content =( 请帮我一点点
使用下面的 Linq Any 方法怎么样?这将只发送一条消息,因为如果找到任何消息,Any 将 return 为真。
private Task CowMooeing(SocketMessage msg)
{
string[] mooes = {"moo", "moooooo", "moooooooooo", "mooooooooooo"};
if(mooes.Any(x => msg.Content.Contains(x))) {
msg.Channel.SendMessageAsync("hi there, you little COWard!");
}
}
我还要说看看 regex 正则表达式,它们对像这样的东西很有帮助