存储触发功能的消息内容

时间:2020-08-15 20:08:20

标签: discord.py

例如,我不知道从哪里开始。

用户说“ foo”,机器人将消息存储起来,然后说“ bar”。我能得到的最接近的是:

message = await channel.send('hmm…')
message_id = message.id

尽管这存储了机器人发送的消息,而不是触发该功能的用户发送的消息。它还不存储消息,仅存储ID。请帮忙。

谢谢!

编辑:我的目标有点像Sx4的建议功能。

1 个答案:

答案 0 :(得分:0)

您好:)不确定您要的是什么,但是好像您正在寻找on message事件?这是一个例子。您应将client替换为您命名的机器人实例。

@client.event
async def on_message(message):
    if message.author != client.user: # Avoids loops by checking that the message author is not the bot itself
        # Code in here will run when a message is sent
    await client.process_commands(message) # Runs all commands contained in the message

如果要存储每条消息,请使用类似这样的变量来设置一个变量,然后可以使用以下方法进行操作:

@client.event
async def on_message(message):
    if message.author != client.user:
        STORED_MESSAGE = message.content
        # Do something with the variable here
    await client.process_commands(message)

或使用“ bar”响应消息“ foo”:

@client.event
async def on_message(message):
    if message.author != client.user:
        if message.content == "foo":
            await message.channel.send("bar")
    await client.process_commands(message)