Я Пишу бота и столкнулся с проблемой: Мне нужна команда clear, которая будет удалять сообщения. Она должна удалить только те сообщения, которые написал сам пользователь, не трогая другие. И вот действительно всё работает так:
@bot.command(pass_contex=True)
async def clear(ctx, arg=None):
arg = arg + 1
await ctx. channel.purge(limit=arg, check=lambda message: message.author == ctx.author)
await ctx.send(f'Удалено ` {arg - 1} ` сообщений', delete_after=5)
К сожалению, работает всё не так, как хотелось бы. Удаляются действительно нужные сообщения, но при проверке на удаление, те сообщения, которые не нужно удалять, считаются удалёнными. Проще показать это так:
[Моё сообщение] bla-bla
[Моё сообщение] bla-bla
[Сообщение другого пользователя] bla-bla
[Сообщение другого пользователя] bla-bla
[Сообщение другого пользователя] bla-bla
[Моё сообщение] bla-bla
Для того, чтобы удалить только мои сообщения, нужно написать .clear, тогда должны удалится только мои сообщения, но на деле нужно прописать .clear 6, так как учитываются не только мои сообщения, но и сообщения других пользователей
Как исправить?