Как восстановить предыдущие сообщения с помощью discord.py

#python #discord.py

#python #discord.py

Вопрос:

У меня есть канал подсчета на моем сервере, и я хочу создать бота, в котором он удалит ваше сообщение, если оно не на 1 число после предыдущего сообщения. Я попытался поискать в Google, как получить предыдущие сообщения, но не получил никаких результатов.

Ответ №1:

Вы можете использовать discord.TextChannel.last_message для получения последнего сообщения канала.

 @client.event
async def on_message(message):
    c_channel = discord.utils.get(message.guild.text_channels, name='counting channel')
    if message.channel == c_channel and int(c_channel.last_message.content)   1 != int(message.content):
        await message.delete()
 

Редактировать:

Вы можете использовать channel.history , если channel.last_message не работает.

 @client.event
async def on_message(message):
    c_channel = discord.utils.get(message.guild.text_channels, name='counting channel')
    messages = await c_channel.history(limit=2).flatten()
    if message.channel == c_channel and int(messages[1].content)   1 != int(message.content):
        await message.delete()
 

messages = await c_channel.history(limit=2).flatten() возвращает 2 последних сообщения канала.

Если это не сработает, измените значение int(messages[1].content) на int(messages[0].content) .

Комментарии:

1. Я только что попробовал этот код, но оказалось, что last_message.content он возвращает текущее сообщение, потому что оно рассматривается как последнее сообщение. Есть ли способ обойти это?