【问题标题】:Get the role(s) of a member in discord.py在 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”,只留下角色名称。

希望有人可以帮助我。

谢谢!

【问题讨论】:

    标签: discord discord.py


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2021-06-12
      • 2021-06-29
      • 2021-07-26
      • 2021-03-26
      • 1970-01-01
      相关资源
      最近更新 更多