我对编码仍然很陌生,而使此命令起作用的唯一方法是执行下面的操作。我很确定有一种更好的编写方法,但是无论如何,这也不完全是我想要的。
我试图提及在开始时使用命令的用户,然后提及消息中提到的用户。 message.author.name仅返回的名称,而不是使用该命令的用户的实际标记。另外-我不确定是否有一种更简便的方法将提及放在首位,我想到的唯一方法是在提及之前留一个空格。
elif message.content.startswith('!sayhello'):
user = message.mentions[0]
responses = ['' + message.author.name + ' says hello to' + user.mention + '']
choice = random.choice(responses)
await client.send_message(message.channel, choice)
答案 0 :(得分:1)
您可以使用User.mention
属性来获取将提及给定用户的字符串。这也适用于message.author
。如果您有多条消息可供选择,它将简化代码以选择正确的模板,然后填写提及内容
elif message.content.startswith('!sayhello'):
user = message.mentions[0]
responses = ["{} says hello to {}", "{} says hi to {}", "{} waves to {}"]
choice = random.choice(responses)
choice = choice.format(message.author.mention, user.mention)
await client.send_message(message.channel, choice)