机器人提及 Discord.py

Bot Mentions Discord.py

  if client.user.mentioned_in(message):
    await ctx.send("Hi!")

所以我希望我的机器人能够回应任何@提及它的人。它确实可以正常工作,但唯一的问题是它会响应@everyone 和@here ping。这可能很简单,我想太多了,但我只想知道是否有任何方法可以让机器人响应它实际提到的消息,而不是@everyone 或@here pings?

检查消息内容中是否有bot的用户id。请尝试以下操作:

    if str(client.user.id) in message.content:
        await ctx.send("Hi!")

嗯,试试这个

@client.event
async def on_message(message):
  if f"<@!{client.user.id}>" in message.content:
    await ctx.send("Hi!")

您可以使用

@client.event
async def on_message(message):

然后检测消息是否提到了机器人:

if client.user.mentioned_in(message):
    await message.channel.send("Hi!")

文档:https://docs.pycord.dev/en/master/api.html?highlight=mentioned#discord.ClientUser.mentioned_in