Discord.py-如何检测用户是否提及/ ping bot

时间:2020-04-16 05:17:50

标签: python python-3.x discord discord.py

所以我只是想知道,如何在discord.py中创建一个事件,如果用户对机器人进行ping操作,它将以一条消息进行响应?

我在任何地方都没有找到任何具体的方法,如果有人可以帮助我弄清楚该怎么做,我将不胜感激。我很感激!

3 个答案:

答案 0 :(得分:2)

我发现默认函数 discord.User.mentioned_in 有效

为了让它检查我们的机器人,我们在函数前添加 client.user(这是我们的机器人),使其成为 client.user.mentioned_in(message)。参数 message 应与您为 async def on_message(message)

提供的参数相同

示例:

@client.event
async def on_message(message):
    if client.user.mentioned_in(message):
        await message.channel.send('You mentioned me!')

我不知道为什么,但我还没有看到其他人使用这个功能。也许他们只是没有意识到这一点,而是使用 client.user.id in message.content

答案 1 :(得分:1)

我发现一些有用的东西是:

if str(client.user.id) in message.content:
     await message.channel.send('You mentioned me!')

答案 2 :(得分:0)

纯文本中的差异ping是使用特殊字符串完成的。幸运的是,您不必像discord.py具有user.mentiondocumentation)那样自己生成这些。您的客户用户也有documentation。因此,我们只需通过client.user.mention

来获得我们自己提及的字符串

现在我们只需要检查消息中是否包含此特定字符串即可

@client.event
async def on_message(message):
    if client.user.mention in message.content.split():
        await message.channel.send('You mentioned me!')