如何在discord.py中获取和设置Bot权限?

时间:2020-11-08 12:47:49

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

我编写了一个discord.py机器人,该机器人已为其分配了自己的类别和渠道。我想通过以下方式设置频道的权限,即只有漫游器才能在其中发送消息:

bot_role = discord.utils.get(guild.roles, name=settings.BOT_ROLE_NAME)
for role in guild.roles:
    await category.set_permissions(role, send_messages=False)
await category.set_permissions(bot_role, send_messages=True)

这段代码可以正常工作,只是需要我将BOT_ROLE_NAME定义为字符串,而我则不需要。我想仅使用bot实例动态设置权限,而不在任何位置定义角色。我尝试过这样的事情:

for role in guild.roles:
    await category.set_permissions(role, send_messages=False)
await category.set_permissions(bot.user, send_messages=True)

但是它不起作用。有什么方法可以直接使用bot实例设置频道的权限?

1 个答案:

答案 0 :(得分:0)

我问这个问题感到很ham愧,因为答案非常简单,而且我不知道如何解决两天。这就是您将机器人实例作为Member类的方式:

for role in guild.roles:
    await category.set_permissions(role, send_messages=False)
await category.set_permissions(guild.me, send_messages=True)