Системные сообщения, такие как сообщения об закреплении, не могут быть удалены с помощью обычных методов. Однако вы можете использовать параметр bulk
объекта TextChannel для удаления последних сообщений из канала, включая закрепленные сообщения.
Вот пример кода, который удаляет последние 100 сообщений из канала (включая закрепленные сообщения):
async def delete_system_messages(channel):
# получаем последние 100 сообщений из канала
messages = await channel.history(limit=100).flatten()
# удаляем сообщения, которые не были написаны пользователями
system_messages = [msg for msg in messages if msg.author == channel.guild.me]
await channel.delete_messages(system_messages)
Вы можете вызвать эту функцию с объектом канала, чтобы удалить все системные сообщения из него:
channel = client.get_channel(123XX)
await delete_system_messages(channel)
Обратите внимание, что параметр bulk может использоваться только для удаления сообщений, написанных ботом. Попытка удалить сообщения, написанные другими пользователями, вызовет исключение discord.Forbidden
.