为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改discord.py中的频道权限?

如何更改discord.py中的频道权限?

扬帆大鱼 2023-07-11 10:49:44
我希望机器人在调用命令时仅切换发送消息权限。代码:    @commands.command()    @commands.has_permissions(manage_channels=True)    async def lock(self,ctx):        await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)这有效,它将默认角色的发送消息权限更改为 false,但它也会影响其他权限,它将它们设置为中性(默认)。我不希望这样,我希望它只是切换发送消息并保留所有内容不变。
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

使用<TextChannel>.overwrites_for()获取角色的当前权限,然后将send_message其拥有的权限设置为 False。

    @commands.command()

    @commands.has_permissions(manage_channels=True)

    async def lock(self,ctx):

        perms = ctx.channel.overwrites_for(ctx.guild.default_role)

        perms.send_messages=False

        await ctx.channel.set_permissions(ctx.guild.default_role, overwrite=perms)


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信