我如何通过在discord.py中的on_message中提及某人的名字来向某人发送DM消息

问题描述

我希望机器人将DM消息发送给名称在消息内容中的用户,这是代码


    @commands.Cog.listener()
    async def on_message(self,message):
        for user in People:  # People list includes all members' names in the server
            if f'{user}' in message.content:
                await message.user.send("Hi")
            else:
                pass

我知道问题出在await message.user.send("Hi")中,但我只想在我的味精(例如)“ Hello Ahmed”中说“自动程序”向ahmed发送DM消息时说“嗨”

解决方法

您不必在行会中重复每个人的名字。 discord.Message具有属性mentions。它返回消息中提到的成员列表。这样您就可以迭代该列表。

@commands.Cog.listener()
async def on_message(self,message):
    for member in message.mentions:
        await member.send('Hi')