Discord.py 如何让你的“不和谐机器人”;记住;他被激活之前的消息?

Discord.py 如何让你的“不和谐机器人”;记住;他被激活之前的消息?,discord.py,Discord.py,我制作了一个discord bot,它将特定消息的id保存在JSON文件中,当有人对消息做出反应时,他会发送一条消息回来。 我的问题是,当我做了一段时间(重新启动、更新、更改主机等)将关闭bot时,bot会“忘记”再次激活之前发出的所有消息 有没有办法让机器人记住关机前发生的所有消息? (我尝试了channel.historyloop,机器人确实找到了他以前制作的消息(我测试了id是否相同) 但在我再次尝试对该消息做出反应后,机器人仍然没有意识到已经做出了反应,因为该消息是在他打开之前发出的 旁

我制作了一个discord bot,它将特定消息的id保存在JSON文件中,当有人对消息做出反应时,他会发送一条消息回来。
我的问题是,当我做了一段时间(重新启动、更新、更改主机等)将关闭bot时,bot会“忘记”再次激活之前发出的所有消息

有没有办法让机器人记住关机前发生的所有消息?
(我尝试了
channel.history
loop,机器人确实找到了他以前制作的消息(我测试了id是否相同)
但在我再次尝试对该消息做出反应后,机器人仍然没有意识到已经做出了反应,因为该消息是在他打开之前发出的

旁注:
有一个解决方法,您可以这样做,而不是试图记住消息id,您还需要记住发送消息的频道id。
因此,在找到上一条消息后,您可以将其删除并生成新消息。

问题是,我想知道是否有更简单的方法,或者是否有“记住”以前的消息的方法。

因此,我要做的是将消息保存到SQL数据库中,并在启动时恢复所有消息

像这样:

# Start up (run this code first)
try:
    with open(path, "x") as file: pass
except: pass

global conn, c
conn = sqlite3.connect(path)
c = conn.cursor()

c.execute("""CREATE TABLE IF NOT EXISTS Messages (
             messages string NOT NULL
             )""")

# Gets message history
c.execute("SELECT * FROM Messages")
history = c.fetchall()
除非您在收到消息时保存消息,否则这将无法工作,因此,一旦您收到希望以后能够获得的消息,请添加这些行

# Saves message
c.execute("INSERT INTO messages VALUES (?)", (message,))
conn.commit()