我如何提及命令触发器中提到的人?

How can I mention whoever was mentioned in the command trigger?

我正在尝试让我的 discord.py 机器人在服务器暂停中提及一个成员,然后给他们暂停的角色。但是,我不知道在嵌入中放什么,即使我只是放一些东西,它也不会发送消息。我也不确定它是否会起作用。这是我的代码:

@bot.command(pass_ctx=True)
@commands.has_permission(administrator=True)
async def suspend(ctx, *, self, member = discord.Member):
 embed = discord.Embed(
 colour = discord.Colour.red(title='Successful Suspension'))
 [
   embed.add_field(name='Details', value='')]
 await ctx.send(embed=embed)
 await member.add_roles('Suspended')
 else:
   await ctx.send('Insufficient Permissions.')

我在 else: function 上也遇到语法错误。

首先我要回答你的问题。您可以使用 discord.Member.mention (在您的情况下,您可以简单地写 member.mention 来提及某人。


其次,我将帮助您嵌入:

  • 函数中的参数凌乱
  • 为什么要在 discord.Colour.red() 中加上标题?那是一种 颜色 ,它用于更改嵌入侧边栏的颜色 (如果那是您尝试做的,您也不能更改文本颜色)。
  • 在嵌入字段中,值中不能没有任何内容。 value=''
  • 你有一个小错别字,是 has_permissions()

我不喜欢吃勺子,但是你的代码应该是这样的:

    @bot.command(pass_ctx=True)
    @commands.has_permissions(administrator=True)
    async def suspend(self, ctx, *, member = discord.Member):
           embed = discord.Embed(title='Succesful Suspension', colour=discord.Colour.red())
           embed.add_field(name='Details', value='A')
           await ctx.send(embed=embed)
           await member.add_roles('Suspended')

我还删除了您代码的最后一部分,因为它没有意义。参见 error handling.


我想就这些了,希望这有用,我建议你看看at the docs. 如果有人发现任何错误,请在评论中告诉我。