gpt4 book ai didi

python - 如何更改discord.py中的 channel 权限?

转载 作者:行者123 更新时间:2023-12-02 19:15:51 25 4
gpt4 key购买 nike

我希望机器人在调用命令时仅切换发送消息权限。代码:

    @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,但它也会影响其他权限,它将它们设置为中性(默认)。我不希望这样,我希望它只是切换发送消息并保留所有内容不变。

最佳答案

使用<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)

关于python - 如何更改discord.py中的 channel 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63718933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com