一旦命令执行者的命令已被编辑,机器人将如何编辑其消息?

时间:2020-06-27 23:47:55

标签: javascript node.js bots discord discord.js

if(message.content === "hello") {
   message.channel.send("World");
}
if(message.content === "hi") {
   message.channel.send("There");
}

我正在为我的机器人尝试一项新功能,但我不确定如何启动它。所以我有关于此消息的命令。所以我想做的是,当我向机器人发送Hello时会回答World,如果我将消息编辑为hi,机器人也将编辑其消息。从WorldThere

discord.js版本:12.2.0

2 个答案:

答案 0 :(得分:3)

这不是一个稳定的解决方案,因为在这种情况下没有正确的方法来编辑机器人的消息,因此您只需要在编辑消息的通道中获取机器人的最后一条消息并进行编辑即可

您必须像这样使用messageUpdate事件:

client.on('messageUpdate', async (oldMessage, newMessage) => {
  if (oldMessage.content === 'hello' && newMessage.content === 'hi') {
    const messages = await newMessage.channel.messages.fetch()
    const lastMsg = messages.filter((msg) => msg.author.id === client.user.id).first()
    lastMsg.edit('there')
  }
})

答案 1 :(得分:0)

您应该执行类似的操作。我累了,而且有效。

client.on('messageUpdate', (oldMessage, newMessage) => {
        
        if (newMessage.content === "hello") {
            message.channel.send("World");
        }
        if (newMessage.content === "hi") {
            message.channel.send("There");
        }
   
})

您也可以将其与删除上一条消息结合起来。