【问题标题】:Discord.py default role permissionsDiscord.py 默认角色权限
【发布时间】:2020-09-15 19:46:06
【问题描述】:

如何查看特定频道中的默认角色拥有哪些权限?

我试过了:

if member.default_role.permission_in(channel).send_message:

但如果没有错误消息,它就无法工作。 我尝试过的所有其他方法也都不起作用。

这是我的代码:

@commands.command()
async def unmute(self, ctx, member: discord.Member):
    if ctx.author.guild_permissions.kick_members:
        for channel in ctx.guild.text_channels:
            role = discord.utils.get(member.guild.roles, name="@everyone")
            if role.permission_in(channel).send_message and member.permissions_in(channel).read_messages:
                    await channel.set_permissions(member, send_messages=True)

【问题讨论】:

  • 您使用的是哪个事件参考?如果您添加更多代码会很有帮助,这样我们就可以了解正在发生的其他事情
  • 我不使用事件,成员是事先定义好的

标签: python discord bots discord.py


【解决方案1】:
@client.event
async def on_member_join(member):
    guild = member.guild
    role = discord.utils.get(guild.roles, name="@everyone")
    if role is not None:
        perms = role.permissions
        print(perms)

使用它打印角色权限整数。您可以使用权限计算器找出权限是什么

【讨论】:

  • 这没有回答我的问题,我希望机器人在每个频道中检查默认角色是否具有读取权限
  • 而不是 perms 变量做 if role.permissions.read_messages is True: 它的权利在 api 参考
猜你喜欢
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 2014-02-26
  • 2019-06-02
  • 2012-04-08
  • 2021-06-22
相关资源
最近更新 更多