使用不和谐机器人存储消息

storing messages with a discord bot

我正在尝试使用 discord bot 存储消息,这样我就可以了解消息的元素在消息之间有何不同。

但是我对这种编码的某些方面很陌生——即装饰器。目前我的与消息交互的机器人程序代码是这样的:

messages=[]

@bot.event
async def on_message(message,messages):
    print("someone said something")
    messages=messages+message
    if message.author == bot.user:
        return messages

我认为这是错误的。我想要做的是在每次事件发生时向消息添加一条消息,以便我稍后可以遍历该变量并查看消息的不同元素如何变化。

我如何更改以上内容以允许这样做?

您只能在 on_message 事件中使用 1 个参数。此外,您不能使用 + 将内容附加到列表中。而且将数据存储在变量中也不是一个好主意,因为无论何时重新启动机器人,它都会被删除。您可以简单地将它们存储在一个 txt 文件中。

@bot.event
async def on_message(message):
    print("someone said something")
    file = open('messages.txt', 'a')
    file.write(message.content + '\n')
    file.close()

编辑

如果你想存储消息的所有信息,你可以这样做:

file.write(f'{message}\n')

file.write(str(message) + '\n')