如何使不和谐的机器人对PAST私人消息做出反应?

时间:2020-05-17 15:49:55

标签: python discord python-asyncio discord.py discord.py-rewrite

我制作了一个简单的discord.py机器人,该机器人在有PM时都会做出反应。但是,如果有人在我的机器人处于脱机状态时向其发送消息,则它不会做出反应。我如何使它显示启动时处于联机状态的所有收到的消息?

当前代码:

import discord
from discord.ext import commands
import asyncio

client = commands.Bot(command_prefix='.')

@client.event
async def on_message(message):
if message.guild is None and message.author != client.user:

    send_this_console=f'{message.author}: \n{message.content}\n'
    print(send_this_console)
await client.process_commands(message)

1 个答案:

答案 0 :(得分:0)

您需要使用消息历史记录并跟踪最后发送的消息。 要获取创建消息的时间:

lastMessageTimestamp = message.created_at

当机器人处于离线状态时(例如,使用pickle),您需要以任何方式存储它,并执行以下操作:

async for message in user.history(after = lastMessageTimestamp):
  print(message.content)