#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
он возвращает текущее сообщение, потому что оно рассматривается как последнее сообщение. Есть ли способ обойти это?