python - 如何获取用户的角色,Discord,Python

标签 python discord

我一直在改进和改进我的机器人。 现在,我已经想出了如何制作机器人清除消息,但是清除消息不应该被允许给任何成员,只能给具有特定角色的人。

我已经完成了这段代码:

if author.roles.has("BotModerator"):

我已经在这个网站 (https://anidiotsguide.gitbooks.io/discord-js-bot-guide/information/understanding_roles.html) 上找过了,但似乎他们是用 Java 编码的,我怎么能用 Python 做呢?

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

最佳答案

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

if "botmoderator" in [y.name.lower() for y in author.roles]:

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

if "role_id" in [y.id for y in author.roles]:

关于python - 如何获取用户的角色,Discord,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893044/

相关文章:

python - 当我使用函数获取前缀时,如何让我的 Discord 机器人同时响应自定义前缀和提及?

python - SQLAlchemy 的 "post_update"与已从 session 中删除的对象的行为不同

python - 3D 体积的时间序列插值(MATLAB 或 Python)

javascript - discord.js 禁用 “interaction failed”

javascript - 如何在 Discord 中创建一个接受用户输入的弹出窗口?

python - Discord.py Bot 的权限系统

python - 访问 pandas 数据框中的单元格

python - 如何设置 Pydantic 字段上的所有枚举值?

用于访问 Closure Compiler Service API 的 Python 库

javascript - Node.js 中的反射