如何使setTimeout(function(){message.delete();}函数删除Discord消息嵌入



我正在学习javascript,或者更具体地说是discord.js,我决定尝试制作一个审核机器人。我创建了一个ban命令,在它禁止用户后,它会发送一个消息嵌入,显示禁令的信息,如禁令的理由、用户的标签等。我决定在5秒后使用setTimeout函数删除嵌入。但是,我不知道该怎么做。我确切地知道如何使用setTimeout函数,只是我不知道如何删除嵌入。这是我的代码:

let kickEmbed = new Discord.MessageEmbed()
.setTitle('Member Kicked!')
.setColor("GREEN")
.addFields(
{name: `Member:`, value: `${memberTarget}`},
{name: `Moderator`, value: `${message.author}`},
{name: `Reason`, value: `${kickReason}`}
)
await message.channel.send({embeds: [kickEmbed]})
setTimeout(function(){
kickEmbed.delete();
}, 5000);

问题是";kickEmbed.delete(("部分我不知道该放什么。kickEmbed无效,消息无效,消息也无效。如果有帮助的话,这里有一个错误:'kickEmbed.delete' is not a function

有人能帮我解决这个问题吗?

setTimeout(function(newArg) {
newArg.delete();
}, 5000, KickEmbed);

我不喜欢发帖子,但解决方案的第一部分是了解您发送到超时的内容。如果你不发送参数,这是一个全局调用,如果更新/更改或删除了,代码中就会出现错误,所以在这里传递你想要使用的值是最佳的。第二部分是不和及其正确用法。GL-

这是因为您在MessageEmbed对象本身上运行它。将其设置为将发送的消息保存到变量,而不是嵌入对象

let kickEmbed = new Discord.MessageEmbed()
.setTitle('Member Kicked!')
.setColor("GREEN")
.addFields(
{name: `Member:`, value: `${memberTarget}`},
{name: `Moderator`, value: `${message.author}`},
{name: `Reason`, value: `${kickReason}`}
)
let sentMessage = await message.channel.send({embeds: [kickEmbed]})
setTimeout(function(){
sentMessage.delete();
}, 5000)

最新更新