微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在一条消息中列出角色成员-discord.py rewrite

如何解决在一条消息中列出角色成员-discord.py rewrite

我做了一个列出角色成员的命令(在我们的服务器上称为帮派)。

@bot.command(pass_context=True)
async def gangmembers(ctx,*args):
    server = ctx.message.guild
    role_name = (' '.join(args))
    role_id = server.roles[0]
    for role in server.roles:
        if role_name == role.name:
            role_id = role
            break
    else:
        await ctx.send("Not an existing gang,sorry about that.")
        return
    for member in server.members:
        if role_id in member.roles:
            await ctx.send(f"{member.display_name} - {member.id}")

它正确地完成了工作,但是我想让它在同一条消息中列出角色成员,而不是为每个角色成员列出1条消息。那有可能吗?如果可以,解决方案是什么?谢谢。

解决方法

您可以将它们添加到列表中,请记住消息中的字符限制为2000。如果超出该范围,您将得到一个错误。

@bot.command(pass_context=True)
async def gangmembers(ctx,*args):
    server = ctx.message.guild
    role_name = (' '.join(args))
    role_id = server.roles[0]
    for role in server.roles:
        if role_name == role.name:
            role_id = role
            break
    else:
        await ctx.send("Not an existing gang,sorry about that.")
        return
    data = []
    for member in server.members:
        if role_id in member.roles:           
            data.append(f"{member.display_name} - {member.id}")
            
    await ctx.send('\n'.join(data))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。