如何从机器人删除最后发送的消息。 Discord.js

时间:2021-03-02 23:56:29

标签: javascript node.js discord discord.js

嗨,我是新来的,我试图删除机器人最后发送的消息,但我不能这样做,你能帮我解决这个问题吗

我已经试过了(但它不起作用):

if (msg.author.bot) msg.delete()

还有这个:

setTimeout(() => message.delete(), 3000);

我的代码:

module.exports = {
    name: "resetuj",
    description: "Resetuje konto gracza!",
  
    async run(client, message) { 
    const args = message.content.trim().split(/ +/);
        const Nadano = new MessageEmbed()
        .setTitle("Nie posiadasz permisji do tej komendy!")
        .setColor(0x0EC0E7)
        .setTimestamp('')
        .setThumbnail('https://cdn.discordapp.com/avatars/814587842071101530/2b018bbe88c48b277a50145a404cdaea.png?size=512')
        .setDescription("**Komenda dla administracji! #?|???????-?????? **")
        message.channel.send(Nadano);
        setTimeout(() => message.delete(), 3000);
}

1 个答案:

答案 0 :(得分:1)

Message.author.id 返回没有 .delete() 方法的雪花。您需要解决 message.channel.send() 返回的承诺并在该回调函数内调用 setTimeout,以便您可以访问新发送的消息对象:

message.channel.send(Nadano)
.then(msg => {
    setTimeout(() => msg.delete(), 3000)
})

或者如下所述,如果您在 await 函数中,您可以改用 async

const msg = await message.channel.send(Nadano);
setTimeout(() => msg.delete(), 3000);