我编写了一个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实例设置频道的权限?
答案 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)