Discord.py如何删除每个文本通道?

时间:2020-09-12 16:14:29

标签: python python-3.x discord discord.py discord.py-rewrite

我正在尝试创建一个命令,该命令允许用户删除服务器中的每个文本通道。运行这段代码时出现错误。

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)

2 个答案:

答案 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]

您可以简单地使用它。