【问题标题】:Can't purge messages from channel, discord.py无法从频道中清除消息,discord.py
【发布时间】:2020-11-20 00:19:08
【问题描述】:

如果打印了-чисти все,我需要默认清除 10 条消息并清除所有频道。它有效,但我的机器人现在不清除任何消息,我不知道我能做些什么来修复它。请帮忙

    cha=ctx.message.channel
    author=ctx.message.author
    if all=='все' or all=="всё":

        amount=0
        history=await cha.history(limit=9999999).flatten()
        for i in history:
            amount+=1
    await ctx.channel.purge(limit=1000) # amount instead 1000```

【问题讨论】:

    标签: python discord.py


    【解决方案1】:

    尝试这样做:

        async def clear(self, ctx, amount=10): # the amount is 10 
            await ctx.channel.purge(limit=amount) # set the default clear limit to 10
    

    【讨论】:

    • 我注意到我的机器人正在删除消息,但这样做太慢了)但它会这样做,所以我没有问题)Ty 寻求反馈)
    【解决方案2】:

    如果您要清除 10 条消息,Context 拥有清除频道所需的一切。您可以使用Context.channel 获取频道并使用purge() 方法清除TextChannel 中的消息。然后你可以使用limit kwarg 来设置一个限制。

    如果您想核爆整个频道,Context 还允许您使用Context.channel 轻松让频道核核。使用属性position获取要删除的TextChannel的位置,使用TextChannel的clone()方法进行克隆,使用delete()删除原频道。然后使用TextChannel.edit()position kwarg 来修复频道列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 2022-01-07
      • 2021-07-30
      • 2020-11-14
      • 2021-02-28
      相关资源
      最近更新 更多