如何让Discord机器人在频道中提及特定人?

时间:2019-06-09 13:53:47

标签: python bots discord discord.py

因此,我最近才开始学习如何使用Python开发Discord机器人,并且在发送特定消息后如何让我的机器人提及人们感到非常困惑。我想做的是,当我在特定频道中写“给乔治打电话”时,我希望我的机器人提到@ George's_name,也许会说“你在这里吗?”提到之后。

据我所见,每个人都说要提及某人,我需要复制他的USER_ID并编写类似<@USER_ID>的内容,但我仍然不知道语法是什么。

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ', <@USER_ID> ,' are you here?')

您可以说,每当有人说“给乔治打电话”时,我都希望机器人提及乔治,并问他是否在这里。当我尝试运行代码时,尽管它告诉我无效的语法并突出显示<@USER_ID>部分。

2 个答案:

答案 0 :(得分:0)

您在评论中说过,您已将ID存储在某个变量中,可以使用string.format(user_id)来ping用户 出现错误的原因是因为您使用逗号,虽然这在print()中有效,但如果要使用send(),则需要连接字符串 希望对您有所帮助,对不起,造成误解。

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ' + "<@{}>".format(userid) + ' are you here?')

如果您只有一个人,并且您希望该功能仅对那个人执行ping操作,则可以

async def on_message(self, message):
    if message.author == self.user:
        return
    if message.content == 'Call George':
        await message.channel.send('Hey ' + "<@123456>" + ' are you here?')

将“ 123456”替换为其实际ID。

答案 1 :(得分:0)

您应使用以下语法:

await message.channel.send("<@user_id>, are you here?")

其中user_id是George的ID。示例:

await message.channel.send("<@668503061970288660>, are you here?")