所以我只是想知道,如何在discord.py中创建一个事件,如果用户对机器人进行ping操作,它将以一条消息进行响应?
我在任何地方都没有找到任何具体的方法,如果有人可以帮助我弄清楚该怎么做,我将不胜感激。我很感激!
答案 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.mention
(documentation)那样自己生成这些。您的客户用户也有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!')