如何在文本中提及成员? Discord 机器人 python

How do I mention a member in a text? Discord bot python

if message.content.startswith('!givecookie @member'):
   await message.channel.send('Hello, @member, here is your cookie~ :cookie:')

那么在提到某人时,如何在命令中添加成员(@member)?该命令应该做的是 - 将 cookie 提供给成员。

首先,你不应该使用 if message.content.startswith(“!givecookie @member") 最好声明客户端使用 client = commands.Bot(command_prefix="!”)。 之后你可以使用

@client.command()
async def givecookie(ctx, member : commands.MemberConverter):
  await ctx.send(f"Hello, {member.mention}, here is your cookie~ :cookie:")

这意味着您的机器人现在有了前缀“!”,并且使用 @client.command 可以发出更多可以在 discord 中使用的命令。该命令中传递的参数(ctx, member : commands.MemberConverter) 分别表示上下文和你要给cookie的具体成员。 ctx.send(f“Hello, {member.mention}, here is your cookie~ :cookie:") 基本上会发送消息,但也会对成员执行 ping 操作。告诉机器人发送“@member”会让它真正发送“@member”。此外,该命令仅在您使用“!givecookie @member”开始消息时有效,但如果您执行“!give cookie {pinging”则无效那个特定的成员}”。

总之,您应该使用 client.command() 来使用命令而不是检查消息的内容。

API参考

https://discordpy.readthedocs.io/en/stable/index.html

前缀: https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?highlight=commands#prefix-helpers

命令: https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?highlight=commands#commands