Использование Discord.py rewrite для удаления сообщений

Как указано в заголовке, я пытаюсь удалить сообщения с помощью моей команды! Purge. У меня это уже есть:

    @bot.command()
    @commands.has_permissions(manage_messages=True)
    async def purge(ctx):
        await delete_messages(ctx, member)
        await ctx.send("Deleted messages")

Он говорит, что delete_messages не определен. Помогите, пожалуйста!


person RektifiedYT    schedule 27.12.2017    source источник


Ответы (2)


Итак, мы в 2019 году. Я помогу вам с вашим кодом.

delete_messages - это метод объекта TextChannel.

В строке await delete_messages(ctx, member) добавьте ctx.message.channel. непосредственно перед delete_messages.

Тогда ваша строка будет выглядеть так:
await ctx.message.channel.delete_messages(ctx, member)

Надеюсь, это проясняет ситуацию.
Если это так, без колебаний «примите» ответ, щелкнув галочку.

person SUPER MECH M500    schedule 13.07.2019

Это приведет к удалению не более 99 сообщений (+ команда очистки) за раз, и сообщения должны быть старше 14 дней.

@bot.command(pass_context=True, name='purge', aliases=['purgemessages'], no_pm=True)
async def purge(ctx, number):
    number = int(number)
        if number > 99 or number < 1:
            await ctx.send("I can only delete messages within a range of 1 - 99", delete_after=10)
        else:
            author = ctx.message.author
                authorID = author.id
                mgs = []
                number = int(number)
                channel = ctx.message.channel
                async for x in bot.logs_from((channel), limit = int(number+1)):
                    mgs.append(x)
                await delete_messages(mgs)
                await ctx.send('Success!', delete_after=4)
person Dextication    schedule 27.12.2017