如何发送消息中成员拥有的所有角色



我正试图发送一条消息,其中机器人显示用户拥有的所有角色。我只是想让机器人在消息中提到角色。下面是我使用的代码:

@commands.command()
async def whois(self, ctx, user: discord.Member=None):
if user:
roles = user.roles
embed = discord.Embed(
description = user.mention
)
embed.add_field(name='Roles', value=roles)
embed.set_thumbnail(url=user.avatar_url)
embed.set_author(name=user.name, icon_url=user.avatar_url)
await ctx.send(embed = embed)

这是我在消息中得到的:

[<Role id=785571867279753238 name='@everyone'>, <Role id=787317902906490940 name='admin'>]

您可以使用一点列表理解来获得提及,然后您可以使用str.join(list)方法来获得字符串

mentions_list = [role.mention for role in roles]
mentions = "n".join(mentions_list) # Using newline as the delimiter

或者如果你想要一行

mentions = "n".join([role.mention for role in roles]) # Using newline as the delimiter

编辑
mentions = "n".join([role.mention if role.name != "@everyone" else role.name for role in roles])

相关内容

最新更新