Discord.py获取消息中给定角色的所有成员

2024-09-29 21:47:18 发布

您现在位置:Python中文网/ 问答频道 /正文

这似乎微不足道,但我有一个奇怪的问题

我在_消息中检查了这个条件(只是一个片段,我有更多的条件,它们工作得很好):

elif message.content.startswith("?ranklist "):
    await rankLister(cls, message)

这是我用来在消息中列出用户提供的角色的所有成员的函数

async def rankLister(cls, message):
    rankToAnalizeStr = message.content[10:]
    logging.info("Asked for %s role members", rankToAnalizeStr)

    for role in message.guild.roles: 
        if role.name == rankToAnalizeStr:
            rankToAnalize = role
            break
        rankToAnalize = ""

    if rankToAnalize:
        memberNames = "\n".join(i.name for i in rankToAnalize.members)

        embed=discord.Embed(title="", description="", color=0xff0000)
        embed.set_author(name="", url="https://tieronetact.com")
        embed.set_thumbnail(url="https://cdn.discordapp.com/emojis/734014025834430525.png")
        embed.add_field(name="Lista osób z rangą {}".format(rankToAnalizeStr), value=memberNames, inline=True)

        await message.channel.send(embed=embed)

该信息的格式如下:

?ranklist roleNameHere

因此,从一开始就开始切割绳子。现在发生的事情是,当BOT启动时(而不是调用函数时),我只让成员连接到语音,这真的很奇怪,因为我没有以任何方式引用语音通道。我想获取所有成员(包括那些未连接到语音的成员,包括在线和离线)

图片参考: https://i.stack.imgur.com/MHVYr.png


Tags: namehttpscom消息messagefor成员语音

热门问题