在 discord.py 中获取成员的角色
Posted
技术标签:
【中文标题】在 discord.py 中获取成员的角色【英文标题】:Get the role(s) of a member in discord.py 【发布时间】:2021-10-16 09:08:07 【问题描述】:我正在尝试创建一个显示提及用户角色的命令。 这个命令是一个测试命令,我将在我的静音命令中实现它。 (该命令会移除成员当前角色并添加静音角色)
这就是我所拥有的:
@client.command()
async def roles(ctx, member: discord.Member):
roles = member.roles
role_names = [role.name for role in roles]
await ctx.send(role_names)
命令运行良好,但输出与我预期的不太一样。
输出:
['@everyone', 'Member']
它正确显示了用户提到的 2 个角色,但它没有按照我想要的特定方式格式化。
我希望输出只是“成员”或提到的成员除了@everyone 之外的任何其他角色。基本上,我想从输出中删除方括号和“@everyone”,只留下角色名称。
希望有人可以帮助我。
谢谢!
【问题讨论】:
【参考方案1】:要解决您的问题,您只需将来自role_names
的信息格式化为字符串形式,然后删除'@everyone'
。您可以使用列表推导和 join() 方法。
这是修改后的代码:
@client.command()
async def roles(ctx, member: discord.Member):
roles = member.roles
role_names = ' '.join([role.name for role in roles if role.name != '@everyone'])
await ctx.send(role_names)
【讨论】:
以上是关于在 discord.py 中获取成员的角色的主要内容,如果未能解决你的问题,请参考以下文章
我怎样才能允许人们使用 discord.py 只踢低于其角色的成员?