Для того чтобы исключить сообщения, отправленные ботом, из удаляемых сообщений, можно использовать параметр `check` в методе `purge`. Этот параметр принимает функцию, которая возвращает `True` для тех сообщений, которые нужно удалить, и `False` для тех, которые нужно оставить.
Вот как можно изменить вашу команду `clear`, чтобы она не удаляла сообщения, отправленные ботом:
```python
@bot.slash_command()
async def clear(inter, count: int):
if inter.user.guild_permissions.manage_messages:
if count > 100:
await inter.send("You can't delete more than 100 messages.", ephemeral=True)
return
else:
message = await inter.send("Clearing messages...")
# Функция для фильтрации сообщений
def is_not_bot(message):
return not message.author.bot # Ищем сообщения, не отправленные ботом
deleted = await inter.channel.purge(limit=count, check=is_not_bot)
await inter.edit_original_response(f"{len(deleted)} messages cleared.")
else:
await inter.send("You don't have permission to use this command.", ephemeral=True)
```
В этом примере функция `is_not_bot` проверяет, что автор сообщения не бот, и только такие сообщения будут удаляться. Это позволяет избежать удаления сообщений, которые были отправлены самим ботом.