Javascript 一旦命令执行器';s命令是否已编辑?

Javascript 一旦命令执行器';s命令是否已编辑?,javascript,node.js,bots,discord,discord.js,Javascript,Node.js,Bots,Discord,Discord.js,我正在为我的机器人尝试一个新功能,但我不完全确定如何启动它。所以我有关于这个消息的命令。因此,我试图做的是,当我向bot发送Hello时,bot将回答World,如果我将消息编辑为hi,bot也将编辑其消息;从世界到那里 discord.js版本:12.2.0这不是一个稳定的解决方案,因为在这种情况下没有合适的方法来编辑bot的消息,所以您只需在编辑消息的通道中获取bot的最后一条消息并对其进行编辑 您必须像这样使用事件: client.on('messageUpdate',异步(oldMess

我正在为我的机器人尝试一个新功能,但我不完全确定如何启动它。所以我有关于这个消息的命令。因此,我试图做的是,当我向bot发送
Hello
时,bot将回答
World
,如果我将消息编辑为
hi
,bot也将编辑其消息;从
世界
那里


discord.js版本:
12.2.0

这不是一个稳定的解决方案,因为在这种情况下没有合适的方法来编辑bot的消息,所以您只需在编辑消息的通道中获取bot的最后一条消息并对其进行编辑

您必须像这样使用事件:

client.on('messageUpdate',异步(oldMessage,newMessage)=>{
if(oldMessage.content=='hello'&&newMessage.content==='hi'){
const messages=wait newMessage.channel.messages.fetch()
const lastMsg=messages.filter((msg)=>msg.author.id==client.user.id).first()
编辑('there')
}
})

您应该这样做。我累了,它工作了

client.on('messageUpdate',(旧消息,新消息)=>{
如果(newMessage.content==“hello”){
message.channel.send(“世界”);
}
如果(newMessage.content==“hi”){
message.channel.send(“那里”);
}
})

您还可以将其与删除上一条消息相结合。

您使用的是什么版本的discord.js?@Syntle v12.2.0I删除我的答案,Syntle解决方案比我的更容易理解。无论如何,您必须使用
messageUpdate
事件,并在内容检查之前和之后执行一些特定的案例。它会给我一个错误
未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“edit”
在编辑您的消息之前,bot是否发送了消息?@Syntle它没有发送任何东西这就是问题所在然后,我不确定您是否只在我的答案中使用了代码,但我的答案是您代码的扩展,因此您仍然需要能够在编辑消息之前触发bot发送“world”消息。
if(message.content === "hello") {
   message.channel.send("World");
}
if(message.content === "hi") {
   message.channel.send("There");
}