Discord.Net机器人回复-包含单词



我刚刚开始修改discord.net来创建一个机器人。我现在有一个非常基本的机器人,当我键入命令文本时,它已经回复了我给定的响应。因此,如果我键入"Hello",它将回复"...world!"

然而,我想要的是,每当消息在任何时候包含某个单词时,机器人都会回复一个固定的响应。因此,如果用户键入"Well, hello there",即使命令字在消息的中间,它仍然会用"...world!"进行回复。我想我可以用.Contains()方法摆动它,但我有点卡住了。

private async Task OnMessageReceived(SocketMessage arg)
{
if (!(arg is SocketUserMessage message)) return;
if (message.Source != MessageSource.User) return;
string[] filters = { "hello" };
string content = message.Content;
bool contains = filters.Any(x => content.Split(" ").Any(y => y.Contains(x)));
if (contains)
{
var guild = _client.GetGuild((message.Channel as SocketGuildChannel).Guild.Id);
await message.Channel.SendMessageAsync($"{arg.Content} world!");
return;
}
}

这是可以从DiscordSocketClient获取的MessageReceived事件。将其放入CommandHandler中。

相关内容

  • 没有找到相关文章

最新更新