如何在Discord.py上获得用户角色重写

时间:2019-04-23 07:12:51

标签: python python-3.x discord discord.py discord.py-rewrite

在这里有新的discord.py-rewrite用户。

我正在编码一个具有不和谐接口的机器人:它已连接到多个服务器(行会),并且我目前需要一个身份验证系统来限制其使用。 我以为我可以获得所有用户角色,并在以后需要时解析它们。所以我做到了:

import org.springframework.data.repository.query.Param;

但是我不喜欢它。我必须存储这些并且效率不高。另外,我还必须使用后台协同例程进行刷新,以检查新成员是否加入/更改了角色。 所以我的问题是:有没有一种简单的方法可以在收到消息时检查互助行中的飞行用户角色? 滚动官方API以获得用户相互公会的唯一方法是profile(),但作为机器人,我会遇到禁止错误,如API所述。

params
    @client.event
    async def on_ready():
        ... 
        for guild in client.guilds:
            for member in guild.members:
                for role in member.roles:
                    if role.name == "Test":
                        print("USER_ID: %d - ROLE: %s" % (member.id, role.name))

(更新)附录:

即使在私人消息中,我也需要检查用户的角色,因此需要获得common_guilds

1 个答案:

答案 0 :(得分:0)

我仔细阅读了文档,但我认为没有更简单的方法可以做到这一点。

@commands.command(pass_context=True)
async def test(self, ctx):
    for role in ctx.guild.roles:
        if role.name == 'Your role name':
            #Code

仅在调用某些命令时,您在公会中检查发送消息的每个角色,如果角色名称与您选择的角色名称匹配,它将执行某些代码。