【问题标题】:How to get and set Bot permissions in discord.py?如何在 discord.py 中获取和设置 Bot 权限?
【发布时间】:2021-02-20 13:56:11
【问题描述】:

我编写了一个 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 定义为字符串,而我不希望这样。我想动态设置权限,而不在任何地方定义角色,只使用机器人实例。我尝试过这样的事情:

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

但它不起作用。有没有办法直接使用bot实例设置频道的权限?

【问题讨论】:

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


    【解决方案1】:

    我很惭愧我问了这个问题,因为答案超级简单,而且我两天都不知道如何弄清楚。这就是您将机器人实例作为成员类获取的方式:

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

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 2020-10-16
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2015-02-01
      • 2021-08-12
      • 2021-12-15
      相关资源
      最近更新 更多