@Mem1388

Как удалять сообщения конкретного пользователя?

Есть такая функция:
async def clr(self, ctx, member: discord.User, *, amount = 100):
    await ctx.message.delete()
    await ctx.channel.purge(limit = amount, check = lambda message: message.author == member)

Она работает, но с минусом: чтобы бот удалил сообщения, при условии, что в истории есть сообщения от других пользователей - нужно учитывать в количестве еще и их. Как можно игнорировать сообщения от других пользователей?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
async def remove_messages(ctx, author, count):
    total_messages = 0
    author_messages = 0

    async for message in channel.history(limit=None):
        total_messages += 1
        if message.author == author:
            author_messages += 1
       
        if author_messages == count:
            break

    await ctx.channel.purge(limit = total_messages, check = lambda message: message.author == member)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы