我正在尝试创建一个命令,该命令允许用户删除服务器中的每个文本通道。运行这段代码时出现错误。
AttributeError: 'Guild' object has no attribute 'delete_text_channel'
@client.command()
async def test(ctx):
guild = ctx.message.guild
for channel in guild.channels:
guild.delete_text_channel(channel)
答案 0 :(得分:2)
使用await channel.delete()
。
正如您的错误消息所说,对象'Guild'
没有属性'delete_text_channel'
正确的方法是:
@client.command()
async def test(ctx):
guild = ctx.guild
for channel in guild.channels:
await channel.delete()
或者,您可以添加删除邮件的原因,该原因将显示在审核日志中:
channel.delete("Because I can")
更多信息here
。
guild.channels
调用所有通道,不仅调用文本通道。
要仅调用文本通道,请使用guild.text_channels
。
答案 1 :(得分:1)
您可以将await channel.delete()
与以下示例代码一起使用:
@client.command()
async def delete_channels(ctx):
[await channel.delete() for channel in ctx.guild.text_channels]
您可以简单地使用它。