我制作了一个简单的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)
答案 0 :(得分:0)
您需要使用消息历史记录并跟踪最后发送的消息。 要获取创建消息的时间:
lastMessageTimestamp = message.created_at
当机器人处于离线状态时(例如,使用pickle),您需要以任何方式存储它,并执行以下操作:
async for message in user.history(after = lastMessageTimestamp):
print(message.content)