我一直在改进和改进我的机器人。现在,我已经弄清楚了如何使漫游器清除消息,但是,不应将清除消息允许给任何成员,而只能允许具有特定角色的人员使用。
我已经完成了以下代码:
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'
角色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)