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

时间:2020-10-27 15:38:37

标签: python discord discord.py

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

我在on_message中检查了这种情况(只是一个片段,我在那里有更多条件,它们可以正常工作):

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

0 个答案:

没有答案