如何获得用户角色,Discord,Python

Nor*_* A. 2 python discord

我一直在改进和改进我的机器人。现在,我已经弄清楚了如何使漫游器清除消息,但是,不应将清除消息允许给任何成员,而只能允许具有特定角色的人员使用。

我已经完成了以下代码:

if author.roles.has("BotModerator"):
Run Code Online (Sandbox Code Playgroud)

我在此网站(https://anidiotsguide.gitbooks.io/discord-js-bot-guide/information/understanding_roles.html)上进行了查找,但似乎它们使用Java进行编码,我该怎么办用Python吗?

顺便说一句,输出中显示的错误是'list'对象没有属性'has'

Wri*_*ght 5

角色User具有的是role对象列表,您需要访问角色的name属性。您可以使用列表理解。

if "botmoderator" in [y.name.lower() for y in author.roles]:
Run Code Online (Sandbox Code Playgroud)

但是,当然,这会将命令限制为仅具有特定角色的人BotModerators。除非它们还具有称为BotModerator的角色,否则不能在其他服务器中使用。我建议您改用id。如果您不知道如何操作,请标记角色,然后在名称前面加上反斜杠,然后发送。应该显示您角色的ID。然后您可以使用它。

if "role_id" in [y.id for y in author.roles]:
Run Code Online (Sandbox Code Playgroud)