python - 将选定的频道排除在 discord.py 循环之外
问题描述
我创建了一个机器人,它会在我键入命令时锁定每个频道,但是,我不希望它锁定员工频道和公告频道。到目前为止,这是我的代码:
@bot.command(aliases=['r'])
@commands.has_permissions(manage_channels=True)
async def lockdown(ctx):
for guild in bot.guilds:
for channel in guild.text_channels:
channel = channel
overwrite = channel.overwrites_for(ctx.guild.default_role)
overwrite.send_messages = False
await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
await channel.send('Lockdown has started')
我怎样才能做到这一点?
解决方案
您可以使用阻塞语句排除您不想按名称锁定的频道。像这样:
@bot.command(aliases=['r'])
@commands.has_permissions(manage_channels=True)
async def lockdown(ctx):
for guild in bot.guilds:
for channel in guild.text_channels:
if channel.name in ['dont_lock_ch_name_1', 'dont_lock_ch_name_2']:
continue
overwrite = channel.overwrites_for(ctx.guild.default_role)
overwrite.send_messages = False
await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
await channel.send('Lockdown has started')
推荐阅读
- java - 无法从服务启动服务
- php - 如何对具有不同字符集的 php 数组进行单元测试?
- python - 用python编写的装饰器实际上是什么?
- javascript - 如果 Javascript 中的属性未设置或错误,则获取默认值
- ios - 尽管没有在表格视图中实现尾随滑动动作,但删除按钮会在滑动时自动实现
- c++ - Opencv 断言错误
- ios - 试图在一个视图控制器中获取两个 UICollection 视图。只有一个出现
- jenkins - 在 Jenkinsfile (Groovy) 中获取给定文件夹中的文件名列表
- c# - 使用条款属性来控制每个项目栏的选择
- protractor - 在量角器测试中设置 chrome 扩展路径