我想添加一个命令来锁定整个服务器并恢复锁定。它有效,但它将所有通道发送消息的权限更改为 False/True。我在问是否有办法将权限设置为中性,并且如果频道权限已经为 false 或 true,则不更改频道权限。这是我当前的代码:
#Lockdown
@client.command()
@commands.has_permissions(manage_channels=True)
async def lockdown(ctx):
for channel in ctx.guild.channels:
await channel.set_permissions(ctx.guild.default_role, send_messages=False)
await ctx.send('The server is now on lockdown!')
#unlockdown
@client.command()
@commands.has_permissions(manage_channels=True)
async def unlockdown(ctx):
for channel in ctx.guild.channels:
await channel.set_permissions(ctx.guild.default_role, send_messages=True)
await ctx.send('Server is now unlocked')