本文介绍了如何锁定提到的频道?Discord.py的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的代码,它只锁定了我当前所在的频道,我觉得有点傻,因为我认为我应该知道这个。例如,我想说‘-lock#channel elname,但它只锁定我当前的频道。
@client.command()
@commands.has_permissions(manage_channels=True)
async def lock(ctx, channel : discord.TextChannel=None):
overwrite = ctx.channel.overwrites_for(ctx.guild.default_role)
overwrite.send_messages = False
await ctx.channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
await ctx.send('Channel locked.')
@lock.error
async def lock_error(ctx, error):
if isinstance(error,commands.CheckFailure):
await ctx.send('You do not have permission to use this command!')
推荐答案
涉及两个通道对象:ctx.channel
是调用命令的通道,或者channel
是作为命令调用的一部分传递的通道。以下是使用channel
(如果可用),否则使用ctx.channel
@commands.has_permissions(manage_channels=True)
async def lock(ctx, channel : discord.TextChannel=None):
channel = channel or ctx.channel
overwrite = channel.overwrites_for(ctx.guild.default_role)
overwrite.send_messages = False
await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
await ctx.send('Channel locked.')
这篇关于如何锁定提到的频道?Discord.py的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!